我有这段代码可以根据其x和y位置生成n个具有ID的div:
$("#gameContent").append($("<div></div>").attr("id", "board"));
var card;
for (var y = 0; y < clientBoard.length; y++) {
for (var x = 0; x < clientBoard.length; x++) {
if(clientBoard[y][x] == undefined){
continue;
}
card = $("<div></div>").addClass("card");
card.attr("id", (y + ":" + x));
card.html("Value " + clientBoard[y][x].value);
if (x == 0) {
card.addClass("clearleft");
}
$("#board").append(card);
}
}
这有效,当我在Chrome浏览器中检查所有div时,它们都正确(例如“ 1:2”)。 然后,我想使用HTML()函数更改这些div的内容。但是使用时:
console.log($("#" + y + ":" + x).html());
它打印未定义
我将使用以下代码来更新div的html内容:
for (var y = 0; y < clientBoard.length; y++) {
for (var x = 0; x < clientBoard.length; x++) {
if(clientBoard[y][x] == undefined){
continue;
}
$("#" + y + ":" + x).html("Value: " + clientBoard[y][x].value);
}
}
我试图用google搜索html()的文档,但似乎找不到任何错误的东西。我在代码的前面使用了html(),唯一的不同是选择器只有一个字符串,而不是字符串和变量的组合。效果很好。
我还打印了它尝试使用的所有选择器,并将它们与div的ID相比较,它们是正确的。
我还测试并打印了它尝试放入div的值,该值也有效
请问我是否应该提供更多信息。
答案 0 :(得分:1)
要在选择器中使用带冒号的ID,您需要对其进行转义:
$('#1\\:2');