Jquery通过id将列表附加到特定元素

时间:2012-10-31 11:58:50

标签: jquery

我有这个HTML:

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

我希望通过Jquery在游戏列表div中放置一个无序列表。

                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应该是一个'独特但不那么漂亮'的身份。

我想知道为什么剩下的价值观不会出现。

提前致谢,

蒂姆A

4 个答案:

答案 0 :(得分: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);
});​

答案 1 :(得分: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++;
});​

答案 2 :(得分:0)

看看这个

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

它会将id为gamelist的元素的id设置为gamenr的内容。这不是你想要的。试试这个

$('#'+gamenr)

答案 3 :(得分:0)

只需更改以下代码

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

进入下一个

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