2011-12-25 8 views
1

私は次のスクリプトがあります:最初のループからの値が、第二のループ上のdivの親となりますので、私は巣にdivをしようとしているjQueryのJSONネストされたループ

function drawDimensions(divid) { 
    $.getJSON('dimensions.json', function(data) { 
     $.each(data, function(index) { 
      var ppp = $('#' + divid).append("<div class='dTitle'><img src='images/cleardot.gif' />" + index + "</div><br>"); 
      $.each(this, function(k, v) { 
       $('<div>').append(v).appendTo(ppp); 
      }); 
     }); 
    }); 
} 
drawDimensions('dim'); 

を。

私は間違っていますか?第2のループのdivはあなたppp

答えて

1

はない、新しく作成された(外側)divに、実際$('#' + divid)への参照で..最初の内に入れ子単に最初のものの後に追加されません。

これを試してみてください:

var ppp = $("<div class='dTitle'><img src='images/cleardot.gif' />" + index + "</div><br>"); 
ppp.appendTo('#' + divid); 
+0

完璧、ありがとう。 – user838437

2

1つの明白な間違いをpppはまだ親のdivではなく、あなたがそこに作成したものを参照することである(唯一ではないかもしれません)。

使用appendTo()あなたは内側のループで行う、など個別の割り当て、持っているように:

function drawDimensions(divid) { 
    var $container = $('#' + divid); 
    $.getJSON('dimensions.json', function(data) { 
     $.each(data, function(index) { 
      var ppp = $("<div class='dTitle'><img src='images/cleardot.gif' />" + index + "</div><br>"); 
      $container.append(ppp); // or ppp.appendTo($container); 
      $.each(this, function(k, v) { 
       $('<div>').append(v).appendTo(ppp); 
      }); 
     }); 
    }); 
} 
drawDimensions('dim'); 

てみてください、それが行く方法を確認し、コメントで教えてください。サンプルコードについて

注:

  • 一つだけとにかく
  • もがあるので、私は、コンテナのdiv jQueryオブジェクトを取得し、キャッシュされた、私が使用する変数に接頭辞として$を使用。 jQueryオブジェクトの一般的な習慣です。必須ではありません。
+1

+1良い事例を促進する。 – PPvG