使用$(selector).html()时变得不确定

时间:2018-10-10 08:53:15

标签: jquery

我有这段代码可以根据其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的值,该值也有效

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

1 个答案:

答案 0 :(得分:1)

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

$('#1\\:2');