我的理解是,每个的两个用途都做同样的事情。一个比另一个更受欢迎吗?我的目标是用返回的数据创建一个表。感谢
$.get('getList.php',
function (data)
{
$.each(data, function(i, value) {console.log(value);})
$(data).each(function(){console.log(this);});
for(var i=0; i<data.length; i++) {console.log(data[i]);}
for (i in data) {console.log(data[i]);}
},'json');
答案 0 :(得分:6)
鉴于data
将是JS对象而不是DOM元素,您应该使用:
$.each(data, ...
因为$.each()
旨在作为任何对象或数组的通用迭代器。
$(data).each(...
语法旨在迭代jQuery对象中包含的DOM元素。如果你创建一个包含data
的jQuery对象而data
不是一个数组,我想你会发现$(data).each(...
将运行一次迭代,返回整个对象而不是每个属性一次迭代。如果data
是一个数组,它将迭代元素,但它并不是真正的预期用途。
如果for (i in data)
不是数组,那么使用data
就好了(如果它是一个数组,你应该使用标准for
循环而不是for..in
),但是因为你无论如何,你都可以使用jQuery,除非存在性能问题,否则坚持使用$.each()
。