如果行包含特定值,我想检查表的复选框。
以下是我的表
<table width="100%" cellspacing="0" border="1" style="border-width: thin; border-collapse: collapse;
border-color: #999999" id="tableControlFailures">
<tbody>
<tr>
<td style="border-width: thin; border-collapse: collapse; border-color: #999999">
<input type="checkbox" id="chkCF">
</td>
<td style="border-width: thin; border-collapse: collapse; border-color: #999999">
C1
</td>
<td style="border-width: thin; border-collapse: collapse; border-color: #999999"
id="tdCFReason">
<input type="text" id="txtCFReason" style="width: 90%" disabled="disabled">
</td>
<td id="CFId" style="display: none">
22
</td>
</tr>
<tr>
<td style="border-width: thin; border-collapse: collapse; border-color: #999999">
<input type="checkbox" id="chkCF">
</td>
<td style="border-width: thin; border-collapse: collapse; border-color: #999999">
C2
</td>
<td style="border-width: thin; border-collapse: collapse; border-color: #999999"
id="tdCFReason">
<input type="text" id="txtCFReason" style="width: 90%" disabled="disabled">
</td>
<td id="CFId" style="display: none">
23
</td>
</tr>
<tr>
<td style="border-width: thin; border-collapse: collapse; border-color: #999999">
<input type="checkbox" id="chkCF">
</td>
<td style="border-width: thin; border-collapse: collapse; border-color: #999999">
c
</td>
<td style="border-width: thin; border-collapse: collapse; border-color: #999999"
id="tdCFReason">
<input type="text" id="txtCFReason" style="width: 90%" disabled="disabled">
</td>
<td id="CFId" style="display: none">
9
</td>
</tr>
</tbody>
</table>
我想检查隐藏列CFId包含23和&amp;的行。 9。
请建议解决方案。
答案 0 :(得分:1)
非常重要的是,正如其他人也提到的那样:
ID只能在HTML文档中使用ONCE。在标记中,您多次使用ID,这根本无效,会破坏CSS和Javascript功能。如果要将某些元素分配到同一逻辑组,请改用class
。在将这些ID更改为类之后,我的解决方案正常工作(如jsFiddle中所示)。
$('#tableControlFailures tr').filter(function () {
return $(this).find('td.CFId:contains(23), td.CFId:contains(9)').length > 0;
}).find('input.chkCF').attr('checked', true);
td.CFId
的内容包含23或9 注意:我的解决方案是为jQuery 1.5.2编写的。在1.6中,您应该使用.prop('checked', true)
而不是.attr('checked', true)
。
答案 1 :(得分:0)
我建议你在标记上做一些修改。您正在为表格单元重复id id =“CFId”而不是尝试class =“CFId”。 JQuery提供了使用CSS规则读取此类元素的解决方案。因此,您应该能够使用“td.CFId”css规则读取具有类CFId类的表格单元格。
然后迭代它并检查值。要到达行,您可以尝试ele.parentNode进行CSS修改,以根据值更改颜色和背景。
//to change the color based on some value
if($(cell).innerHTML === '23') {
$(cell).parentNode.style.color = 'red'
}
除非您不想坚持使用JQuery,否则此解决方案应该适用于JQuery API和简单的JavaScript。
答案 2 :(得分:0)
试试这个
$("#tableControlFailures").find("td:contains('22'), td:contains('23')").parent("tr").find("#chkCF").prop("checked", true);
的示例
但是,正如其他人所说的那样,你应该改变你的td以获得唯一的id并使用该类来分组元素。设置唯一ID后,我的解决方案仍然有效
答案 3 :(得分:-1)
$("table").find("td:contains('23'),td:contains('9')").find(":checkbox").attr("checked",true);'