我试图访问表格标签内的所有复选框.... 最初所有复选框都在div标签内,当时代码工作正常,我可以访问每个复选框
$('#div_id').children('input').each(function()
{
if(this.type == 'checkbox')
{
if($(this).attr('id') == 1)
{
this.checked = true;
}
}
});
现在,当我在表格中放置复选框时,它停止工作。我试图将'div_id'改为'table_id'仍然没有成功。有什么建议吗?
动态创建所有复选框和表格。
答案 0 :(得分:2)
.children
只在树下传递一个元素(此处描述为https://api.jquery.com/children/)。
您现在需要的是.find
,它遍历子元素树的所有内容,因此您的代码变为:
$('div_id').find('input').each(function()
{
if(this.type == 'checkbox')
{
if($(this).attr('id') == 1)
{
this.checked = true;
}
}
});
答案 1 :(得分:2)
-----------------------------下面的HTML代码--------------- -----------
<table>
<tr>
<td><input type="checkbox" checked="checked" /></td>
<td><input type="checkbox" checked="checked" /></td>
<td><input type="checkbox" /></td>
<td><input type="checkbox" /></td>
</tr>
</table>
<input type="button" onclick="callFunction()" value="Click" />
-------------------------- JS代码如下------------------ --------------
<script type="text/javascript">
function callFunction() {
$('table input[type=checkbox]').each(function () {
alert("hi table") //This will be call 4 times.
if (this.checked) {
alert("hi inner") ////This will be call 2 times, only for checked checkboxes.
//this.checked = true;
}
});
}
</script>
答案 2 :(得分:0)
您可以使用选择器api:
$('table #id input [type = checkbox]');
将返回一个包含所有复选框元素的数组。