之前一直在用for循环遍历的,突然想用到jQuery的each()函数来使用。
之前的for循环:
for(var i=0;i<size2;i++){
if($('#page2 .tabs_box input').eq(i).is(':checked')){
tabsInfo=true;
}
}
然后通过转为each循环,变成这样写↓
$('#page2 .tabs_box input').each(function(){
if($(this).is(':checked')){
tabsInfo=true;
}
});
两个都是五行,不过纯当做学习each()函数了。
不过后面我带入了return以后,就发现问题所在了。
在each()函数中使用return,只能起到提前结束循环的作用,并不能阻止代码继续往下运行
$('.eval_ul input').each(function(){
if($(this).val()=='0'){
console.log('000');
alert();
showInfo('给景区评分');
return false;
}
return false;
});
然后代码就继续往下执行了,出现了console错误。
然后我只能换回了for循环遍历执行判断了。效果一切正常。
for(var i=0;i<size1;i++){
if($('.eval_ul input').eq(i).val()=='0'){
showInfo('给景区评分');
return false;
}
}
总结下:each()方法虽然方便,但是遇到了那种需要使用return阻止函数继续运行的情况下,还是需要使用for循环来执行代码块。