我在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?,但仍然没有得到它...... :(
答案 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); });