如何在jQuery中获取然后迭代一系列复选框?

时间:2012-11-06 15:56:12

标签: javascript jquery dom

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

我正在尝试在表格上方执行“全部检查”复选框,用户单击“全部检查”复选框,表格中的每一行都会获得其重构?选中复选框。我试图在jQuery中实现这一点,并且已经走到了这一步:

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

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

显然,这不起作用,但是当我在alert下方注释掉所有内容时,当我点击“全部检查”复选框时,我可以成功地弹出警告对话框,所以我已经得到了远。

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

6 个答案:

答案 0 :(得分:1)

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

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

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

$('.refactorClass').prop('checked', true);

答案 1 :(得分:0)

只需选择表格中所有:checkbox的{​​{1}},然后使用.prop()

th:last-child

DEMO: http://jsfiddle.net/9BRA3/

答案 2 :(得分:0)

如果您为所有复选框添加一个类,那么这将更加清晰,然后您可以这样做

$("#checkAll").click(function() {
   $(".seleciton").attr("checked", true);
});

答案 3 :(得分:0)

我不确定你为什么要先把它们放在一个数组中。

This works for me

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

答案 4 :(得分:0)

鉴于它们位于第8列,您可以按如下方式执行:

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

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

见工作demo

答案 5 :(得分: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);
 });