0

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

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

1 回答 1

6

鉴于这data将是一个 JS 对象而不是 DOM 元素,您应该使用:

$.each(data, ...

因为$.each()旨在作为任何对象或数组的通用迭代器。

$(data).each(...语法旨在遍历 jQuery 对象中包含的 DOM 元素。如果您创建一个包含但不是数组的 jQuery 对象,我想您会发现它data会运行一次迭代,返回整个对象,而不是每个属性一次迭代。如果是一个数组,它将遍历元素,但这并不是真正的预期用途。data$(data).each(...data

如果不是数组,则使用for (i in data)很好data(如果它是数组,则应该使用标准for循环而不是 a for..in),但是由于无论如何您都在使用 jQuery,$.each()除非存在性能问题,否则您最好坚持使用。

于 2012-08-19T04:45:18.817 回答