选择<div>进行动态更新

时间:2017-04-24 17:42:24

标签: javascript jquery

我有创建表的代码,每个单元格包含一个id为行号+&#34;,&#34; + column_number(例如,左上角的单元格用:

构建
<td><div id="0,0">This is 0,0</div></td>

)。我希望能够修改代码中的单元格内容而无需刷新整个页面,但我无法弄清楚如何动态更新ID。当我做这样的事情时:

var row = 1;
var col = 1;
var newCellContents = "This cell is changed";
var divID = row.toString() + "," + col.toString();
$(divID).html(newCellContents);

它会抛出语法错误;我假设它正在尝试找到一个名为&#34; divID&#34;。

的div

如何使用ID&#34; 1,1&#34;?

更新div

3 个答案:

答案 0 :(得分:2)

要实现此目的,您需要在选择器中转义逗号,否则它将被解释为选择器之间的分隔符,而不是id值的一部分。为此,请在逗号前加\\。您还需要在选择器前加#,以便按id搜索元素。试试这个:

var row = 1;
var col = 1;
var newCellContents = "This cell is changed";
var divID = row.toString() + "\\," + col.toString(); // note the use of \\

$('#' + divID).html(newCellContents);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>
      <div id="0,0">This is 0,0</div>
    </td>
    <td>
      <div id="1,1">This is 1,1</div>
    </td>
  </tr>
</table>

答案 1 :(得分:0)

您已忘记#访问ID

var divID = '#' + row.toString() + "," + col.toString();

答案 2 :(得分:0)

使用不需要转义的其他分隔符。

有许多特殊字符

请参阅jQuery selector escaping

请注意,使用字符串连接数字会自动将它们强制转换为字符串

var row = 1;
var col = 1;
var newCellContents = "This cell is changed";
var divID = row + "_" + col;
$('#' + divID).html(newCellContents);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="0_0">This is 0,0</div>
<div id="1_1">This is 1,1</div>