0

我有一个有 8 列的表。最后一列的<th>标题是Refactor? 并简单地为表格中的每一行显示一个复选框。如果用户想要重构表中的特定记录,他们检查该行的Refactor? 复选框,然后提交表单。

我正在尝试在表格上方实现一个“全选”复选框,用户单击“全选”复选框,表格中的每一行都会得到它的重构?复选框选中。我正在尝试在 jQuery 中实现这一点,并且已经做到了这一点:

$("#checkAll").click(function() {
    alert("Check All has been checked!");

    var checkboxArray = null;
    $.each(checkboxArray, function(key, value) {
        $(key).prop("checked", true);
    });
});

显然,这不起作用,但是当我注释掉下面的所有内容alert时,当我单击“全部选中”复选框时,我可以成功弹出警报对话框,所以我已经做到了。

我正在尝试获取checkboxArray所有Refactor 的数组 ()?表中的复选框。一旦我有了那个数组,我只需要一种方法来遍历每个复选框并将其checked属性设置为 true。但我很难在这里连接这些点。提前致谢!

4

6 回答 6

1

有两种方法,您可以选中所有复选框

$('input[type=checkbox]').prop('checked', true);

或者你可以给那些重构框一个类,只检查那些

$('.refactorClass').prop('checked', true);
于 2012-11-06T15:59:43.177 回答
0

只需选择表:checkbox中的所有th:last-child ,然后使用.prop().

$("#checkAll").click(function() {
    alert("Check All has been checked!");

    $("#myTable th:last-child :checkbox").prop("checked",true);
});

演示:http: //jsfiddle.net/9BRA3/

于 2012-11-06T15:58:47.703 回答
0

如果您将一个类添加到所有复选框的类似选择中,这会更干净,那么您可以这样做

$("#checkAll").click(function() {
   $(".seleciton").attr("checked", true);
});
于 2012-11-06T15:59:33.223 回答
0

我不确定您为什么要先将它们放入数组中。

这对我有用

$('#checkall').click(function(){
    $('input[type="checkbox"]').prop('checked', true);
});

​</p>

于 2012-11-06T16:01:38.190 回答
0

鉴于它们位于第 8 列,您可以按以下方式进行操作:

$("#checkAll").click(function() {
    alert("Check All has been checked!");

    $('#yourtable td:nth-child(8) :checkbox').each(function() {
         $(this).prop("checked", true);
    });
});

查看工作演示

于 2012-11-06T16:02:11.820 回答
0
$("#checkAll").click(function() {
    alert("Check All has been checked!");

    $('input[type="checkbox"]').not($(this)).prop('checked' , this.checked);
});

如果这些是您页面中唯一的复选框,那么您可以使用上述方法。首先不需要迭代..

$("#checkAll").click(function() {
      alert("Check All has been checked!");

      $('tbody input[type="checkbox"]').not($(this)).prop('checked' , this.checked);
 });
于 2012-11-06T16:03:13.873 回答