我有这个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答案 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>");