每个使用哪个?

时间:2012-08-19 04:41:55

标签: javascript jquery

我的理解是,每个的两个用途都做同样的事情。一个比另一个更受欢迎吗?我的目标是用返回的数据创建一个表。感谢

$.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');

1 个答案:

答案 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()