javascript
  • jquery
  • 2011-12-25 85 views 1 likes 
    1

    我有以下腳本: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'); 
    

    我試圖巢的div所以從第一循環的值將是div的父母在第二循環。

    我在做什麼錯?第二環路的div沒有嵌套的第一個內,但第一那些後簡單地附加..

    回答

    1

    ppp實際上是$('#' + divid)一引用,而不是到新創建的(外)div

    試試這個:

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

    完美的,謝謝你。 – user838437 2011-12-25 13:05:30

    2

    的一個明顯的錯誤(可能不是唯一的)是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 2011-12-25 13:38:57

    相關問題