如何通过单击最后一个复选框位置取消选中内部的所有复选框

时间:2011-05-26 14:36:36

标签: jquery

请为我的问题提供解决方案。

我有一张桌子。

如果我选择<td>的最后一个<tr>标记中的复选框,则应取消选中相同<tr>标记的所有复选框。

我的代码现在就是这样。

var columnText = $('TABLE TBODY TR:first TD:last input:checkbox').change(
   function() {
      alert("Hi");  
      $(this).parents('tr').find('input:checkbox').attr('checked', false);
});

请有人帮助我。 : - )

谢谢。

4 个答案:

答案 0 :(得分:0)

试试这个:

var columnText = $('table tbody tr:first td:last input[type="checkbox"]').change(function(){
  alert("Hi");
  $(this).parents('tr').find('input[type="checkbox"]').attr('checked', false);
});

答案 1 :(得分:0)

使用.closest(selector)@ http://api.jquery.com/closest/和$ each迭代器

$.each($(this).closest('tr').find("td"),function(){
   $(this).attr('checked', false);
});

答案 2 :(得分:0)

    $('table tr:first').each(function() {
      var $el = $(this);
      $el.find('td:last input[type="checkbox"]').change(function() {
        if($(this).attr('checked')) {
          $el.find('input[type="checkbox"]:not(:last)').attr('checked', false); 
        }
      });
    });

答案 3 :(得分:0)

如果我理解问题是正确的,这里有一个表格,其中包含td的

中的一些复选框
<table id="check_test">
<tr><td>
<input type="checkbox" name="a" id="a" value=""/><label for="a">a</label>
<input type="checkbox" name="b" id="b" value=""/><label for="b">b</label>
<input type="checkbox" name="c" id="c" value=""/><label for="c">last</label>
</td></tr>
<tr><td>
<input type="checkbox" name="d" id="d" value=""/><label for="d">d</label>
<input type="checkbox" name="e" id="e" value=""/><label for="e">e</label>
<input type="checkbox" name="f" id="f" value=""/><label for="f">last</label>
</td></tr>
</table>

在选中最后一个复选框时自动检查td内的所有复选框:

$(document).ready(function() {
    $("#check_test td").find("input:last").change(function()                    
        $(this).parent().find(":checkbox").attr('checked',true);
    });
});