【发布时间】:2020-11-05 13:52:51
【问题描述】:
我有一个动态生成行的表。大体结构如下:
<table id="table1">
<thead></thead>
<tbody>
<tr>
<td>Cell value 1</td>
<td>Cell value 2</td>
<td>Cell value 3</td>
<td>
<input type="checkbox" id="checkbox1" value="value1>
<input type="checkbox" id="checkbox2" value="value2>
</td>
</tr>
<tr>
<td>Cell value 4</td>
<td>Cell value 5</td>
<td>Cell value 6</td>
<td>
<input type="checkbox" id="checkbox1" value="value1>
<input type="checkbox" id="checkbox2" value="value2>
</td>
</tr>
</tbody>
</table>
基于其中一个(准确地说是第三个)中的值,我正在尝试选中/取消选中复选框。我的脚本是:
$('#table1 tbody tr').each(function(){
var cellValue = $(this).find("td").text();
if (cellValue=='someValue'){
$('#checkbox1).prop('checked',true);
}
});
我面临的问题是,由于行是动态生成的,因此在该迭代期间,我无法获得那组特定的复选框。与上面的示例一样,在第一次迭代期间,我设置了 checkbox1 并且它正在工作,但在第二次迭代期间,我试图在第二行中设置 checkbox2,但在第一行中的 checkbox2 正在设置。任何帮助/指针将不胜感激。谢谢。
【问题讨论】:
-
ID 应该是唯一的,请考虑使用类,并使用复选框的相对位置来选择正确的复选框。
-
还请记住,
$(this).find('td').text()返回来自tr(this) 的所有td子元素的文本,这些子元素组合成一个字符串。我怀疑这不是你想要的。 -
jQuery 对我来说有点新。我的印象是类在这里比 id 更有用。感谢您的帮助!
标签: javascript jquery user-interface dom frontend