jquery checkbox反复调用attr('checked', true/false)只有第一次生效
Posted 缘来狠狂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery checkbox反复调用attr('checked', true/false)只有第一次生效相关的知识,希望对你有一定的参考价值。
- /**
- * 全选
- */
- function checkAll() {
- $("input[name=ids]").attr("checked", true);
- }
- /**
- * 全不选
- */
- function uncheckAll() {
- $("input[name=ids]").attr("checked", false);
- }
问题描述:
初始状态复选框没有全选,
点击全选按钮调用checkAll方法,
实现了全选,
然后点击全不选按钮,
实现了全不选,
然后再次点击全选按钮,
结果却木有全选,
再反复点击木有任何反应。
google之:
把使用prop方法代替attr方法,
- /**
- * 全选
- */
- function checkAll() {
- $("input[name=ids]").prop("checked", true);
- }
成功了。
prop()获取匹配的元素的属性值。
这个方法是jquery1.6以后出来的,用来区别之前的.attr()方法.
区别最大的一点就是:布尔型的属性,1.6以后都是用.prop()方法就好了。
这个布尔型的属性,再解释一下,是属性值只有true|false的属性。
还有种情况就是只添加属性名,不需要写属性值的就可以生效的也同样使用.prop()方法。比如:checked、disable这样的,其实它们说到底还是属于布尔型的属性。
1.添加属性名称该属性就会生效应该使用prop();
2.是有true,false两个属性使用prop();
3.其他则使用attr();
以上是关于jquery checkbox反复调用attr('checked', true/false)只有第一次生效的主要内容,如果未能解决你的问题,请参考以下文章
jQuery 操作复选框(checkbox) attr checked不起作用
jQuery checkbox选中问题之prop与attr注意点分析