我的一位同事建议我使用 jQuery .each()
通过 javascript for
循环遍历我页面上的 DOM
元素,我不是 jQuery 的新手,但一直不明白开发人员倾向于使用 的真正原因>.each()
结束 javascript 的循环。谁能给我解释一下?
最佳答案
如果您想使用 for
进行迭代循环,你必须增加索引:
for(var i=0; i<arr.length; ++i) {
然后您必须使用索引获取实际值:
var value = arr[i];
.each
为您完成这两项并将值传递给函数:
$(...).each(function(i, value) {
// actual interesting part of the loop...
});
它只是为您节省了递增索引和获取该索引值的样板代码。
.each
中定义的变量函数也被关闭(即在 closure 内),因此等效代码(考虑循环和变量闭包,加上设置 this
,以及中断 false
返回值)可能是这样的:
(function() {
for(var i=0; i<arr.length; ++i) {
var ret = (function(index, value) {
// actual interesting part of the loop...
}).call(arr[i], i, arr[i]);
if(ret === false) break;
}
})();
要输入的内容要多一些。
在执行性能方面,.each
比原始 for
慢(不出所料)循环,因为它所做的远不止原始 for
循环。
关于javascript - jQuery 中 .each() 函数相对于传统 "for"循环的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16192395/