【发布时间】:2013-04-17 18:20:58
【问题描述】:
我正在使用 jQuery 数据表,我希望有一列复选框,并且标题应包含一个全选复选框。我在数据表官方网站上没有找到任何关于此的详细信息。
有人可以帮忙吗?
谢谢。
【问题讨论】:
-
欢迎来到 StackOverflow。你有一些你尝试过的代码示例吗?
我正在使用 jQuery 数据表,我希望有一列复选框,并且标题应包含一个全选复选框。我在数据表官方网站上没有找到任何关于此的详细信息。
有人可以帮忙吗?
谢谢。
【问题讨论】:
一种方法是使用数据表的 aoColumns 属性,并将“sTitle”属性的标记呈现为 html 字符串。
http://www.datatables.net/usage/columns
//On datatable init the options would look something like this
"aoColumns": [{ "sTitle": "<input type='checkbox' id='selectAll'></input>"}]
然后您可以在创建数据表后将处理程序连接到标题复选框以选中/取消选中所有复选框;
比如:
$("#selectAll").toggle(function () {
$("checkboxSelector", dataTable.fnGetNodes()).attr("checked", true); }
, function () {
$("checkboxSelector", dataTable.fnGetNodes()).attr("checked", false);
}
);
【讨论】:
你可以有如下一行
<tr>
<th><input type="checkbox" id="selectall"/></th>
<th>Cell phone</th>
<th>Rating</th>
和 jquery 连接起来
<SCRIPT language="javascript">
$(function(){
// add multiple select / deselect functionality
$("#selectall").click(function () {
$('.case').attr('checked', this.checked);
});
// if all checkbox are selected, check the selectall checkbox
// and viceversa
$(".case").click(function(){
if($(".case").length == $(".case:checked").length) {
$("#selectall").attr("checked", "checked");
} else {
$("#selectall").removeAttr("checked");
}
});
});
</SCRIPT>
【讨论】: