2012-04-15 43 views
0

我里面的index.php下面的JavaScript代码:的jQuery检查所有复选框DataTable中

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

我通过AJAX检索信息,并使用jQuery数据表建立从信息的表,数据表head我里面有与class='checkall'复选框。

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

*我没有得到里面的错误萤火虫

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

回答

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

作品如果在页面上没有其他复选框,除了你的头复选框,并要检查

+0

我现在没有工作...... – Eric 2012-04-15 15:12:17

+0

的作品,我的代码直接添加到元素: 的onclick =“$(\ ':复选框\')不是(这个).attr。 (\'检查',this.checked);“ – Eric 2012-04-15 15:14:41

1

我认为你的问题可能与您使用的$(本) ,这可能引用了“checkall”复选框。

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

你举显示了正确的例子方式做,由r eferenceing datatable.fnGetNodes()

0

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

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