0

次の 2 つの使用法はそれぞれ同じことを行うと理解しています。どちらが優先されますか? 私の目的は、返されたデータでテーブルを作成することです。ありがとう

$.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

それがJSオブジェクトであり、DOM要素ではないことを考えると、data次を使用する必要があります。

$.each(data, ...

$.each()任意のオブジェクトまたは配列に対する汎用反復子として意図されているためです。

この$(data).each(...構文は、jQuery オブジェクトに含まれる DOM 要素を反復処理することを目的としています。を含むjQueryオブジェクトを作成し、配列dataではない場合、プロパティごとに1回の反復ではなく、オブジェクト全体を返す1回の反復が実行されるdataことがわかると思います。が配列の$(data).each(...場合、要素を反復処理しますが、実際には意図した用途ではありません。data

が配列でない場合は使用しfor (i in data)ても問題dataありません (配列の場合は、ではforなく標準のループを使用する必要がありfor..inます) が、とにかく jQuery を使用している$.each()ため、パフォーマンスの問題がない限り、そのまま使用することもできます。

于 2012-08-19T04:45:18.817 に答える