2

json 応答を html 要素に追加しています。コードはとてもシンプルです

HTML

<div>
  <ul id='grid'></ul>
</div>

jQuery

data = ["Paintings",{ "age":0}]

$(function() {
   $.each(data, function(i,index) {         
     $('div').find('ul').append('<li>'+index.age+'</li>');
  });
});

出力は次のようになります

未定義

0

未定義はどこから来るのですか??

これを使用して未定義を削除しようとしました

$('#grid').children(':first-child').remove('li');

ただし、「0」と未定義は削除されます。

http://jsfiddle.net/ccUKH/

4

3 に答える 3

1

undefinedから"Pages".ageです。これを試して:

$.each(data, function(i,index) {
    if (index.hasOwnProperty('age')) {         
        $('div').find('ul').append('<li>'+index.age+'</li>');
    }
});
于 2013-01-20T19:27:33.507 に答える
1

dataは配列で、配列の最初の要素は stringPaintingsです。配列の 2 番目の要素は、プロパティ を持つオブジェクトageです。

eacharray 内の両方の要素をループし、 string にはプロパティがないためage、 text で LI を作成しますundefined

objectデータ構造を変更するか、または配列を探して、それstringに応じて反応することができます...何をしたいのかわかりません。何をしているのか不明Paintings

于 2013-01-20T19:27:39.947 に答える
1

データは、 string'Paintings'と objectの 2 つの要素を含む配列{age:0}です。

コードが「データ」を反復処理するとdata.0.age、「未定義」として評価され (文字列であり、子を持つことができないため)、data.1.age「0」として評価されます。

「グリッド」の と id を指定<ul>したため、 でを検索する必要もありません(このデータをを含むすべてのものに追加する場合を除きます)。<div><ul><div><ul>

<ul>データを再構築して、次のように直接ターゲットに設定してみてください。

data = {"Paintings" : [{"age":0}, {"age":5}]};

$.each(data.Paintings, function(i,index) {
  $('#grid').append('<li>'+index.age+'</li>');
});

http://jsfiddle.net/ccUKH/2/

于 2013-01-20T19:27:05.423 に答える