Javascript indexOf()显示的是-1“;在错误的情况下
我试图使用indexOf()来检查一个字符串是否包含另一个字符串,如果是,它将触发不同的if语句,下面是代码和记录的结果: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
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 -----------------^^