Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript indexOf()显示的是-1“;在错误的情况下_Javascript_Indexof - Fatal编程技术网

Javascript indexOf()显示的是-1“;在错误的情况下

Javascript indexOf()显示的是-1“;在错误的情况下,javascript,indexof,Javascript,Indexof,我试图使用indexOf()来检查一个字符串是否包含另一个字符串,如果是,它将触发不同的if语句,下面是代码和记录的结果: var str2="Handrail Ext"; if (fixing.toString().indexOf(str2) === -1 || fixingDig.toString().indexOf(str2) === -1) { console.log("$FixingDig: " + fixingDig + " $Fixing: " + fixing

我试图使用indexOf()来检查一个字符串是否包含另一个字符串,如果是,它将触发不同的if语句,下面是代码和记录的结果:

  var  str2="Handrail Ext";
  if (fixing.toString().indexOf(str2) === -1 || fixingDig.toString().indexOf(str2) === -1) {
    console.log("$FixingDig: " + fixingDig + " $Fixing: " + fixing + "InfexOf Result: " + fixing.toString().indexOf(str2) + ".");
    $('.results #handrails').val(new_posts);
    $('.wpcf7-form input[name=hidden-post-handrails]').val(new_posts);
  } else {
    console.log("$FixingDig: " + fixingDig + " $Fixing: " + fixing + "InfexOf Result: " + fixing.toString().indexOf(str2) + ".");
    $('.results #handrails').val(0);
    $('.wpcf7-form input[name=hidden-post-handrails]').val("0");
  }
控制台日志

页面加载:

$FixingDig: No Fixing. $Fixing: No Fixing. IndexOf Result: -1.
选择固定:

$FixingDig: Bolt Down (610mm). $Fixing: No Fixing. IndexOf Result: -1.
选择扶手固定:

$FixingDig: Bolt Down (760mm + Handrail Ext.). $Fixing: No Fixing. IndexOf Result: -1.

要检查,请使用
-1
而不是
=-1

var str=“扶手分机”;
var text1=“bla和bla扶手外部bla”
var text2=“bla和bla扶手bla”
console.log(text1.indexOf(str))
console.log(text2.indexOf(str))
您的条件
(fixing.toString().indexOf(str2)==-1 | | fixingDig.toString().indexOf(str2)==-1)
是错误的

fixing=“无固定。”
FixingDig=“无固定。”

fixing=“螺栓固定(610mm)。”
FixingDig=“无固定。”

fixing=“用螺栓固定(760mm+扶手外伸)”
FixingDig=“不固定。”

将您的情况替换为:

if (fixing.toString().indexOf(str2) === -1 && fixingDig.toString().indexOf(str2) === -1)
//            Notice this -----------------^^
你自己试试看

console.log(“不固定不固定”);
如果(“无固定”。toString().indexOf(“扶手外线”)==-1&“无固定”。toString().indexOf(“扶手外线”)==-1){
控制台日志(“未找到”);
}否则{
控制台日志(“找到”);
}
控制台。日志(“螺栓固定(610mm)。无固定”);
如果(“螺栓固定(610mm)。”.toString().indexOf(“扶手外伸”)===-1&“无固定”。toString().indexOf(“扶手外伸”)==-1){
控制台日志(“未找到”);
}否则{
控制台日志(“找到”);
}
控制台。日志(“螺栓固定(760mm+扶手外)。无固定”);
如果(“螺栓固定(760mm+扶手外伸)”.toString().indexOf(“扶手外伸”)===-1&&“无固定”。toString().indexOf(“扶手外伸”)==-1){
控制台日志(“未找到”);
}否则{
控制台日志(“找到”);

}
您可以使用“includes”而不是“indexOf”。

您可以看到它们,str2位于代码上方,输入字符串显示在问题的控制台日志中。我不明白。你认为日志哪里错了?由于
$Fixing:No Fixing
不包含
“扶手分机”
,因此索引为-1。我看这日志是正确的。我遗漏了什么?$FixingDig:螺栓固定(760mm+扶手延伸)包括扶手,仍然返回-1…哪里?你没有记录这个。至少我不知道在哪里。我显示了3条控制台日志消息,并突出显示了日志显示的位置,它非常清楚地显示“选择扶手固定”,然后显示选择扶手固定的日志。不管怎么说,这件事现在已经解决了。工作顺利,非常感谢。我相信includes会像最初的includes一样在IE中抛出一个对象错误,但由于IE的原因,我不得不将其更改为indexOfIncludes而不是跨浏览器
if ("Bolt Down (610mm).".toString().indexOf("Handrail Ext") === -1 || ...)
//  ^--------------------------True -----------------------------^
//  Since the condition is a OR, the remaining isn't evaluated
if ("Bolt Down (760mm + Handrail Ext.).".toString().indexOf("Handrail Ext") === -1 || "No Fixing.".toString().indexOf("Handrail Ext") === -1)
//  ^----------------------------------- False ----------------------------------^    ^---------------------- True ------------------------^
//  Since the condition is a OR, the remaining IS evaluated. The right part is true, the whole condition is TRUE
if (fixing.toString().indexOf(str2) === -1 && fixingDig.toString().indexOf(str2) === -1)
//            Notice this -----------------^^