我收到一个错误,这是一个非法的继续声明。 我有一个单词列表来检查表单验证,问题是它是否将一些子字符串与保留字匹配,所以我创建了另一个干净单词数组来匹配。如果匹配一个干净的单词,则如果匹配保留字,则继续其他,提醒用户
$.each(resword,function(){
$.each(cleanword,function(){
if ( resword == cleanword ){
continue;
}
else if ( filterName.toLowerCase().indexOf(this) != -1 ) {
console.log("bad word");
filterElem.css('border','2px solid red');
window.alert("You can not include '" + this + "' in your Filter Name");
fail = true;
}
});
});
答案 0 :(得分:83)
continue
语句适用于普通的JavaScript循环,但jQuery each
方法要求您使用return
语句。返回任何非虚假的内容,它将表现为continue
。返回false,它将表现为break
:
$.each(cleanword,function(){
if ( resword == cleanword ){
return true;
}
else if ( filterName.toLowerCase().indexOf(this) != -1 ) {
//...your code...
}
});
有关详细信息,请参阅jQuery docs。
答案 1 :(得分:7)
用
替换继续return true;
答案 2 :(得分:3)
您正在使用continue
,它适用于jquery for
处理程序中的javascript each
循环。这不行。 jquery continue
中的each
相当于返回非假值。
if ( resword == cleanword ){
return true;
}
答案 3 :(得分:3)
在jQuery.each循环中,您必须返回true或false以更改循环交互:
我们可以在特定的迭代中打破$ .each()循环 回调函数返回false。返回非假是与a相同 在for循环中继续声明;它将立即跳到下一个 迭代。
所以你需要这样做:
$.each(resword,function(){
$.each(cleanword,function(){
if ( resword == cleanword ){
return true;
}
else if ( filterName.toLowerCase().indexOf(this) != -1 ) {
console.log("bad word");
filterElem.css('border','2px solid red');
window.alert("You can not include '" + this + "' in your Filter Name");
fail = true;
}
});
});
答案 4 :(得分:0)
在Jquery中,每次我们在数组中循环时都调用一个函数,所以continue
不起作用,我们需要return true
从函数中退出。
只有在没有匿名函数的简单循环中,我们才能使用continue
答案 5 :(得分:-1)
你不能继续使用那里。它会自动继续,只需删除它 - 我认为它应该适用于您的描述。