使用 $(选择器).html() 时未定义



我有这段代码来生成 n 个带有 id 的div 基于它们的 x 和 y 位置:

$("#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);
}
}

我试图谷歌并查看html((的文档,但似乎找不到任何错误的地方。我之前在我的代码中使用了 html((,唯一的区别是选择器只有一个字符串,而不是字符串和变量的组合。效果很好。

我还打印了它尝试使用的所有选择器,并将它们与div 的 id 进行了比较,它们是正确的。

我还测试并打印了它试图放入divs的值,该值也有效

询问我是否应该提供更多信息。

为了在选择器中使用带有冒号的 id,您需要对其进行转义:

$('#1\:2');

最新更新