【发布时间】:2017-06-27 11:20:50
【问题描述】:
如果复选框输入类型,我正在尝试检查所有元素,我尝试了不同的解决方案但没有奏效,我知道这很简单,但我不知道我的代码有什么问题:
<ul class="items">
<li class="item checkall">
<label>
<input type="checkbox" name="item[]" id="checkAll">
<span></span>
<p>Check All Items</p>
</label>
</li>
<li class="item">
<label>
<input type="checkbox" name="item[]" id="checkbox" value="1">
<span></span>
<p>Learn HTML5.1</p>
</label>
</li>
<li class="item">
<label>
<input type="checkbox" name="item[]" id="checkbox" value="2">
<span></span>
<p>Learn PHP7</p>
</label>
</li>
<li class="item">
<label>
<input type="checkbox" name="item[]" id="checkbox" value="4">
<span></span>
<p>Program a Website</p>
</label>
</li>
</ul>
jQuery :
$(".checkall").click(function () {
$('input:checkbox').not(this).prop('checked', this.checked);
});
【问题讨论】:
-
首先使用class而不是id。 id 必须是唯一的,使用
#id选择一个id,使用.class选择一个类。如果你看起来更好,还有很多像你一样的问题stackoverflow.com/questions/18537609/jquery-checkbox-check-all; stackoverflow.com/questions/15504643/… -
是的。这很简单。所以,我的问题是:如果要检查所有复选框,为什么需要
not(this)语句? -
使用
change事件而不是click -
@Alexis 我一直在寻找不同的问题,但我无法做到。
-
希望对您有所帮助! fiddle