我有这个表,从xml
填充<table id="tableDg"
style="border:#2F5882 1px solid;width:100%;" cellspacing="1" cellpadding="1">
<thead>
<tr id="trHead" style="color :#FFFFFF;background-color: #8EA4BB" >
<th></th>
<th width="2%"><input id="chkbHead" type='checkbox' /></th>
<th width="10%" align="center" spry:sort="name"><b>Name</b></th>
<th width="22%" align="center" spry:sort="host"><b>Host</b></th>
</tr>
</thead>
<tbody spry:repeat="pv1">
<tr class="trOdd"
spry:if="({ds_RowNumber} % 2) != 0" onclick="ds1.setCurrentRow('{ds_RowID}');"
style="color :#2F5882;background-color: #FFFFFF">
<td><input type="hidden" id="path" value="{path}"></input></td>
<td><input type="checkbox" id="chkbTest" class = "chkbCsm" ></input></td>
<td width="10%" align="center"> <input type="hidden" id="nameText" readonly="true" value="{name}"><a href="#" class="aDg">{name}</a></input></td>
<td width="22%" align="center"> <input type="hidden" id="nameText" readonly="true" value="{host}">{host}</input></td>
</tr>
<tr class="trEven" name="trEven" id="trEven"
spry:if="({ds_RowNumber} % 2) == 0" onclick="ds1.setCurrentRow('{ds_RowID}');"
style="color :#2F5882;background-color: #EDF1F5;">
<td><input type="hidden" id="path" value="{path}"></input></td>
<td><input type="checkbox" class = "chkbCsm" ></input></td>
<td width="10%" align="center"> <input type="hidden" id="nameText" readonly="true" value="{name}"><a href="#" class="aDg">{name}</a></input></td>
<td width="22%" align="center"> <input type="hidden" id="nameText" readonly="true" value="{host}">{host}</input></td>
</tr>
</tbody>
</table>
按钮点击我正在调用一个函数,在函数内部我正在执行类似下面的操作
$('#tableDg input:checkbox').removeAttr('checked');
但没有运气。请帮忙!!我想取消选中按钮上的所有复选框
答案 0 :(得分:2)
试试这个:
$('#tableDg input:checkbox').attr('checked',false);
答案 1 :(得分:2)
我会使用$('#tableDg input[type=checkbox]').removeAttr('checked');
附加说明: 因为:checkbox是jQuery扩展而不是CSS规范的一部分,使用:checkbox的查询无法利用本机DOM querySelectorAll()方法提供的性能提升。为了在现代浏览器中获得更好的性能,请改用[type =“checkbox”]。
但我认为问题不在您使用的代码中,更好地提供单击按钮时执行的脚本
您的复选框似乎没有值和名称属性,如果您在表单中使用它们,我建议您添加它们
同样在1.6中有一个.removeProp('checked')
,但带有一个音符
注意:请勿使用此方法删除本机属性,例如已选中,已禁用或已选中。这将完全删除属性,一旦删除,就不能再次添加到元素。使用.prop()将这些属性设置为false。
所以你的代码应该是
$('#tableDg input[type=checkbox]').prop('checked', false);
答案 2 :(得分:0)
我使用此代码切换复选框状态:
checked = false;
$('#select_all').click(function() {
checked = !checked
$(this).children('input:checkbox').attr('checked', checked);
});
在您的情况下尝试将'checked'设置为false。另外,在firebug / chrome inspect的控制台中尝试相同的操作。
答案 3 :(得分:0)
几乎就像何塞·瓦伦特所说的那样,但你也可以只检查已选中的复选框而不是所有复选框。
$('#tableDg input:checked').attr('checked',false);
答案 4 :(得分:0)
你可能有表格来处理输入,所以你可以使用它:
$('.my-button').click(
function(){
$(this).parents('form').find('input:checkbox').removeAttr('checked');
}
)
答案 5 :(得分:0)
使用Prop而不是attr
$('#tableDg input:checked').prop('checked',false);