使用父类检查所有子复选框

时间:2018-01-23 08:32:41

标签: javascript jquery html

当我点击"检查所有组1和#34;时,它应该只选择其子项,但现在它也选择"检查所有组2"项目。我该如何解决这个问题?

代码:



jQuery(".parentCheckAll").click(function(e) {
  jQuery("#" + jQuery(this).parent().parent().attr("id") + " .extended-checkboxes input[type='checkbox']").attr('checked', true);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parentCheckAll"> Check all group 1</div>
<div class="extended-checkboxes">
  <input name="" type="checkbox" item="" class="checkbox-meta" tabindex="1"><br />
  <input name="" type="checkbox" item="" class="checkbox-meta" tabindex="2">
</div>
</div>

<div class="parentCheckAll"> Check all group 2</div>
<div class="extended-checkboxes">
  <input name="" type="checkbox" item="" class="checkbox-meta" tabindex="3"><br />
  <input name="" type="checkbox" item="" class="checkbox-meta" tabindex="4">
</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

我不确定您希望代码实际上做什么,但为了实现您想要的目标,您所要做的就是:

  1. 在点击的元素后面获取类extended-checkboxes的元素

  2. 选择其input个孩子。

  3. 如下所示:

    /* ----- JavaScript ----- */
    $(".parentCheckAll").click(function(e) {
      $(this.nextElementSibling).children("input[type='checkbox']").prop('checked', true);
    });
    <!----- HTML ----->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="parentCheckAll"> Check all group 1</div>
    <div class="extended-checkboxes">
      <input name="" type="checkbox" item="" class="checkbox-meta" tabindex="1"><br />
      <input name="" type="checkbox" item="" class="checkbox-meta" tabindex="2">
    </div>
    
    <div class="parentCheckAll"> Check all group 2</div>
    <div class="extended-checkboxes">
      <input name="" type="checkbox" item="" class="checkbox-meta" tabindex="3">
      <br />
      <input name="" type="checkbox" item="" class="checkbox-meta" tabindex="4">
    </div>

    注意:jQuery 1.6开始,建议您更喜欢prop 在尝试检查复选框(请参阅attr时,而不是this comment