$("#btnAll").click(function () {
$("[name='items']:checkbox").attr("checked", true);
});
这样绑定怎么全选按钮不太灵,只能1次有效,再按就没反应了,求解。谢谢
具体代码:
<form>
<fieldset>
<legend>What is your favourite sport?</legend>
<input type="checkbox" name="items" value="Soccer" />Soccer
<input type="checkbox" name="items" value="Basketball" />Basketball
<input type="checkbox" name="items" value="Tennis" />Tennis
<input type="checkbox" name="items" value="Ping-Pang" />Ping-Pang
<input type="checkbox" name="items" value="Swimming" />Swimming
</fieldset>
<input type="button" id="btnAll" value="All" />
<input type="button" id="btnNot" value="All not" />
<input type="button" id="btnRev" value="Reverse" />
</form>
<script>
$(function () {
$("#btnAll").click(function () {
$("[name='items']:checkbox").attr("checked", true);
});
$("#btnNot").click(function () {
$("[name='items']:checkbox").attr("checked", false);
});
$("#btnRev").click(function () {
$("[name='items']:checkbox").each(function () {
this.checked = !this.checked;
});
});
});
上面全不选和反选都行。但是反选如果用$(this).attr("checked", !$(this).attr("checked"))也不行,为什么?
应该是attr这个方法在checkbox上面有些小问题。我自己也遇到过。解决方法就是
$("#btnAll").click(function () {
$(":checkbox").each(function (index, element) {
element.checked = true;
});
});
嗯,这么写是ok的,谢谢了。
亲自测试,在chrome, ff, IE9游览器中楼主的代码,效果都有。
我是chrome,jQuery-1.9.1。。可能是jQuery版本的问题
jQuery版本问题,在jQuery1.6版本及更早版本可用attr。
嗯,多谢。