我的这段代码不起作用。我做错了什么?
$("#checkall").click(function () {
$("input", myTable.fnGetNodes()).each(function () {
$("input", myTable.fnGetNodes()).prop("checked", this.checked);
});
});
看来这个.each函数的当前值不能检查属性。我哪里错了?
这是我的标记
<table class="table display" id="userviewtable">
<thead>
<tr>
<th id="checkall"><input type="checkbox" /></th>
<th>User ID</th>
<th>User Name</th>
<th>Staff ID</th>
</tr>
</thead>
<tfoot>
<tr>
<th><input type="checkbox" /></th>
<th>User ID</th>
<th>User Name</th>
<th>Staff ID</th>
</tr>
</tfoot>
</table>
在脚本方面我有以下内容:
var myTable=$("#userviewtable").dataTable(); //to initialize my table with data
$("#checkall").click(function () {
$("input", myTable.fnGetNodes()).each(function () {
$("input", myTable.fnGetNodes()).prop("checked", this.checked);
});
});
谢谢
答案 0 :(得分:1)
您的代码应为:
$("#checkall").change(function () {
$("input", myTable.fnGetNodes()).prop("checked", this.checked);
});
答案 1 :(得分:0)
如果不知道程序应该实现什么,很难知道你需要知道什么。但希望这会有所帮助。
每个函数中this
的值将具有与$("input", myTable.fnGetNodes())
匹配的元素的值。
如果您希望元素的值与$("#checkall")
匹配,则可以将此值分配给each
函数之外的var。
您还要两次匹配$("input", myTable.fnGetNodes())
。每个都将它的函数参数应用于选择中匹配的每个元素。
作为在this
函数中使用each
的替代方法,可以为传递给每个函数的函数提供参数,第一个是索引,第二个是单个元素匹配。
$("#checkall").click(function () {
var checked = this.checked;
$("input", myTable.fnGetNodes()).each(function (ind,ele) {
$(ele).prop("checked", checked);
});
});
如果你想对匹配的每个元素应用相同的简单动作,那么每个都不是绝对必要的,因为该函数将应用于匹配的每个元素:
$("#checkall").click(function () {
$("input").prop("checked", this.checked);
});