写函数的之后,中间要写一个函数,大概实现的功能是在数组匹配元素,如果找到返回1,没找到返回-1:
<pre name="code" class="javascript"> function inArraySearch(para,ids){ <span style="font-family: Arial, Helvetica, sans-serif;">var flagself=para.attr("typeAttr");</span><pre name="code" class="javascript"> // console.log(flagself);
var ret=-1;
var id=para.children('td').eq(0).text();<pre code_snippet_id="1714667" snippet_file_name="blog_20160612_3_7609991" name="code" class="javascript"> $.each(<span style="font-family:Arial, Helvetica, sans-serif;">ids</span>,function(index, value){ if(value.wordid==id&&flagself==value.flag){ return 1; } return -1; }
}
结果发现实现不了,老是报-1,永远没有找到返回为1的,后来百度了才知道,因为在jquery的each里面,是没有continue和break的,return true代表continue,而return false代表break,所以这么写的话相当于即使找到了也是做continue,不会做return。所以最后还是用的普通的for循环来做的。看来jquery还是不能乱用啊!
function inArraySearch(para,ids){
var flagself=para.attr("typeAttr");
// console.log(flagself);
var ret=-1;
var id=para.children('td').eq(0).text();
for(var i=0;i<ids.length;i++){
if(ids[i].wordid==id&&flagself==ids[i].flag)
return 1;
}
//alert("not found")
return -1;
}

本文探讨了使用 jQuery 的 $.each 方法进行数组元素匹配时遇到的问题,由于 return 1 和 return -1 在该方法中的特殊含义导致逻辑无法正确执行。通过对比分析,最终采用普通 for 循环实现了预期功能。
784

被折叠的 条评论
为什么被折叠?



