2012-10-31 21 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