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使用

你不能在那里继续使用。 无论如何,它会自动继续,只是删除 – 我认为它应该按照您的描述工作。