4

当我选择/取消选择 selectAll 复选框时,我希望选中或取消选中所有其他复选框。

没有子元素或父元素

html代码:

<div>
 <li class="input">
  <input type="checkbox" name="selectAll" value=""></input>
 </li>
 <li class="input">
  <input type="checkbox" name="practice" value=""></input>
 </li>
 <li class="input">
  <input type="checkbox" name="filename" value=""></input>
 </li>
 <li class="input">
  <input type="checkbox" name="comment" value=""></input>
 </li>
</div>

到目前为止,这就是我试图做的 -

$(this).siblings('ul').find("input[type='checkbox']").prop('checked', true);

$(this).parent().find('input:checkbox:first').prop('checked', true);
4

2 回答 2

8

干得好。

标记

  <div>
    <li class="input">
      <input type="checkbox" id="select-all" name="selectAll" value=""/>
    </li>
    <li class="input">
      <input type="checkbox" name="practice" value=""/>
    </li>
    <li class="input">
      <input type="checkbox" name="filename" value=""/>
    </li>
    <li class="input">
      <input type="checkbox" name="comment" value=""/>
    </li>
  </div>

代码

$("#select-all").on("click", function() {
  var all = $(this);
  $('input:checkbox').each(function() {
       $(this).prop("checked", all.prop("checked"));
  });
});

小提琴:http: //jsfiddle.net/PcMnk/148/

于 2013-10-24T15:28:15.723 回答
3

HTML

<div>
    <li class="input">
        <input type="checkbox" class="select-all" name="selectAll" value=""></input>
    </li>
    <li class="input">
        <input type="checkbox" class="item-checkbox" name="practice" value=""></input>
    </li>
    <li class="input">
        <input type="checkbox" class="item-checkbox" name="filename" value=""></input>
    </li>
    <li class="input">
        <input type="checkbox" class="item-checkbox" name="comment" value=""></input>
    </li>
</div>

jQuery

$(".select-all").on("click", function() {
    $(".item-checkbox").prop("checked", $(this).prop("checked"));
});

或者(如果您由于某种原因无法分配课程)

$("input[name=selectAll]").on("click", function() {
    $("input:checkbox").prop("checked", $(this).prop("checked"));
});

或(如果您只想要 DOM 中处于相似级别的复选框

$("input[name=selectAll]").on("click", function() {
    $(this).closest("div").find("input:checkbox").prop("checked", $(this).prop("checked"));
});
于 2013-10-24T15:06:11.867 回答