2012-10-31 38 views
0

我有這個網站:jQuery的追加列表,以特定元素的ID

<div id="wrapper"> 
<div id="gamelist"></div> 
</div> 

,我想放在通過jQuery的遊戲列表格一個無序列表。

   var gamenr = 0; 
      $.each(response.payload, function(key, value) { 
        //alert(key + ': ' + value); 
       $('#gamelist').append("<ul id='"+gamenr+"' class='game'></ul>"); 

       $.each(value, function(key, value){ 
        //alert(key +': ' + value);  
        $("#gamelist").attr('id', gamenr).append("<li>"+value+"</li>"); 
       }); 
       gamenr++; 
      }); 

唯一顯示出來的是第一個值。 gamenr應該做一個'獨特但不那麼美麗'的id。

我想知道爲什麼其餘的值不會顯示出來。

由於提前,

+0

你有什麼回覆? – 2619

回答

2

你在第一次循環改變#gamelist的ID,然後你要追加到#gamelist在第二次迭代等,這是不存在的元素,你變了在第一次迭代的ID:

var gamenr = 0; 
$.each(response.payload, function(key, value) { 
    var gamelist = $('<ul />', {id: 'a_'+(gamenr++), 'class':'game'}); 

    $.each(value, function(j, k) { 
     var li = $('<li />', {text: k}); 
     gamelist.append(li); 
    }); 

    $('#gamelist').append(gamelist); 
});​ 
+0

非常感謝您的快速awnser。 :) –

0

您可以附加<li>元素相同<div>塊,但不附加<ul>

var gamenr = 0; 
$.each(response.payload, function(key, value) { 
    $("#gamelist").append("<ul id='" + gamenr + "' class='game'></ul>"); 

    $.each(value, function(key, value) { 
     $("#" + gamenr).append("<li>" + value + "</li>"); 
    }); 

    gamenr++; 
});​ 
0

看這個

$("#gamelist").attr('id', gamenr) 

它會設置ID對於id爲gamelist的元素指向gamenr的內容。這不是你想要的。試試這個

$('#'+gamenr) 
+0

HTML5支持數字標識。 – VisioN

+0

right ...再次編輯 – devnull69

0

只是改變了下面的代碼

$("#gamelist").attr('id', gamenr).append("<li>"+value+"</li>"); 

進入下一個

$("#gamelist ul[id='" + gamenr + "']").append("<li>"+value+"</li>"); 
+0

爲什麼不''(「#」+ gamenr)'?速度更快。 – VisioN

+0

它可能是id = 0或1等的其他元素,等#gamelist外 –

+0

不可以,否則標記無效。 Ids應該是唯一的。 – VisioN