比较两个字符串(jquery .text() 和文字字符串)
Compare two strings (jquery .text() and literal string)
我试图弄清楚为什么这不起作用。我确定文本是相同的。它们都返回一个字符串。但是 if 语句总是正确的,即使它显然是错误的...有谁知道我做错了什么?
for (var i = 0; i < $("#slider_2011 dd").length; i++) {
if ($("#slider_2011 dd").eq(i).children("h1").text() === "text1" || "text2" || "text3"){
$("#slider_2011 dd").eq(i).children("h2").text("text4");
}
}
var whiteList = ['text1', 'text2', 'text3'];
$("#slider_2011 dd").filter(function() {
return $.inArray($('h1', this).text(), whiteList) > -1;
}).find('h2').text('text4');
if ($("#slider_2011 dd").eq(i).children("h1").text() === "text1" || "text2" || "text3") // will always return true as in or(||) condition you just checked for "text1" (non negative) Which will be considered as true always.
因此,您应该比较文本值,例如
var txt = $("#slider_2011 dd").eq(i).children("h1").text();
if (txt === "text1" || txt === "text2" || txt === "text3") {
$("#slider_2011 dd").eq(i).children("h2").text("text4");
}
你的if语句基本上是错误的。我看到很多人给了你解决方案。但我想向你解释为什么它是错误的。
所以,你已经给出了这样的if语句
if ($("#slider_2011 dd").eq(i).children("h1").text() === "text1" ||"文本2" ||"文本3")
JavaScript 是这样读的
if ($("#slider_2011 dd").eq(i).children("h1").text() === "text1" || true || true)
所以条件显然总是正确的。
因为javascript内部会将"text2"和"text3"转换为布尔值。当任何非空字符串转换为布尔值时,它变为 true。
if 条件中的基本缺陷。分别检查每个文本1、文本2、文本3。正确掌握基础知识。
相关文章:
- Inout Text字段在转换为字符串并输出时生成一个空行
- Mongodb使$text搜索可以使用空字符串作为$or的单个子句
- text+变量连接作为 appendChild($variable) 中的字符串与纯 javascript
- 在 JavaScript 中是否可以使用 @“text” 将多行字符串分配给变量,就像在 C# 中一样
- Cheerio 'text()' 空字符串用于 span 标签
- JQuery val()、text() 和 html() 都返回一个空字符串
- 比较两个字符串(jquery .text() 和文字字符串)
- jquery text()未与字符串进行比较
- 将字符串传递到.text()函数后,保留特定的HTML标记
- Javascript-将字符串以text/html的形式复制到剪贴板
- 比较el.text()===“;字符串“;即使元素包含“”;字符串”;
- 只要将字段中的Javascript值添加到另一个字符串中,就会显示为[object Text]
- 需要解释字符串"<%= text %>"
- Jquery text()比较字符串
- 当使用$http发送字符串请求时,请求体作为对象返回.Post (angular)和bodyparser.text()
- 突出显示"text"的子字符串在HTML中使用javascript选择选项
- JQuery -从变量中的HTML字符串中获取attr/text
- 响应类型为text/plain的Angular资源总是生成一个字符串数组
- 检查text是否在字符串中
- 使用jquery.text()方法向文本字符串添加新行