选中所有功能复选框

时间:2011-06-06 06:34:57

标签: jquery jquery-ui jquery-selectors jquery-validate

在下面的代码中,我试图实现selectall功能。当我选择所有复选框时,名为sts的复选框未被选中。我做错了什么

 $(document).ready(function() {
 $("#selectall").click(function()
     {
        var checked_status = this.checked;
        $(".sts").each(function()
        {
           this.checked = checked_status;
        });
     });
  });
    var ele1 ='<table cellpadding="0" cellspacing="0" border="1" ><tr><th style="width:100px;" ><p align="center">Select all students</p><p align="center"><input type="checkbox" name="sts" class="sts" id="selectall"  /></p></th><th><p align="center">Student name</p></th><th><p align="center">Select Grade</p></th><th><p align="center">Certificates</p></th></tr>';
     for(var l=0;l<data.studentarr.length;l++)
     {
        ele1 +=  '<tr id="s_r_' + data.studentarr[l].id + '" class="students1"><td align="center" style="width:100px;"><input type="checkbox" class="sts" name="sts" /></td><td align="center">' + data.studentarr[l].name +'</td><td align="center">' + getgrade_values(data.studentarr[l].id) + '</td><td>' + data.studentarr[l].download_link + '</td></tr>';
     }
     ele1 += "</table>";
     $('#student_table').append(ele1);

1 个答案:

答案 0 :(得分:2)

您正在动态创建全选复选框,因此您应使用livedelegate来绑定点击事件。

试试这个:

$("#selectall").live("click" , function()
     {
        var checked_status = this.checked;
        $(".sts").not(this).each(function()
        {
           this.checked = checked_status;
        });
     });
  });