jQuery检查datatable中的所有复选框

时间:2012-04-15 14:56:04

标签: javascript jquery datatables

我在index.php中有以下javascript代码:

$(function () {
     $('.checkall').click(function () {
          $(this).find(':checkbox').attr('checked', this.checked);
     });
});

我通过ajax检索信息,并使用jQuery数据表在数据表head内部根据该信息创建表格。我有一个class='checkall'的复选框。

为什么头部内的复选框不会检查通过ajax检索的所有其他复选框?

*我在Firebug中没有错误

*我检查了How to check every checkboxes in a jquery datatable?,但仍然没有得到它...... :(

3 个答案:

答案 0 :(得分:1)

我认为您的问题可能是您使用$(this),这可能会引用'checkall'复选框。

find()查找节点的后代,并且要检查的复选框不是该复选框的后代。

您引用的示例通过引用datatable.fnGetNodes()

显示了执行此操作的正确方法

答案 1 :(得分:1)

$(function () {
     $('.checkall').click(function () {
          $(':checkbox').not(this).attr('checked', this.checked);
     });
});

如果页面上没有其他复选框,除了您的头部复选框和您要检查的复选框

,则有效

答案 2 :(得分:0)

除了GreyBeardedGeek所说的,如果你是通过ajax加载的,如果你的checkall复选框是通过ajax调用创建的并且被插入到DOM中,那么你的click事件就不会被触发。在这种情况下,您应该使用“on”(或“live”,具体取决于您的jQuery版本):http://api.jquery.com/live/。例如:

$(document).on("click", ".checkall", 
  function(){ $(this).find(':checkbox').attr('checked', this.checked); });
相关问题