JavaScript $ .each循环中的非法continue语句
我得到一个错误,这有一个非法的继续声明。 我有一个单词列表来检查表单validation和问题是它匹配一些子string保留字,所以我创build了另一个干净的单词匹配数组。 如果它匹配一个干净的单词继续,否则如果它匹配一个保留字提醒用户
$.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; } }); });
continue
语句适用于正常的JavaScript循环,但jQuery的each
方法都要求您使用return
语句。 返回任何不是假的,它将performance为一个continue
。 返回false,它将performance为一个break
:
$.each(cleanword,function(){ if ( resword == cleanword ){ return true; } else if ( filterName.toLowerCase().indexOf(this) != -1 ) { //...your code... } });
有关更多信息,请参阅jQuery文档 。
replace继续
return true;
你正在使用continue
,这是为jQuery的each
处理程序内的JavaScript循环。 这是行不通的。 在jquery中continue
相当于each
虽然是返回一个非错误的价值。
if ( resword == cleanword ){ return true; }
在jQuery.each循环中,您必须返回true或false来更改循环交互:
通过使callback函数返回false,我们可以在特定的迭代中打破$ .each()循环。 返回非错误与for循环中的continue语句相同; 它会立即跳到下一个迭代。
所以你需要这样做:
$.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; } }); });
在Jquery中我们每次调用一个函数的时候我们每次循环内部数组,所以continue
不会工作,我们需要return true
来退出函数。 只有在没有匿名函数的简单循环中,我们才能continue
使用
你不能在那里继续使用。 无论如何,它会自动继续,只是删除 – 我认为它应该按照您的描述工作。