使用attr()方法获取不到checkbox的checked属性解决方案
今天遇到一个全选/取消全选的功能,使用Jquery的attr()方法获取checked时发现一直undefined,而且选中/取消后再获取也是undefined。
然后上网找了一下相关资料,发现Jquery.attr()方法,记录的是元素的初始化属性(则在代码设置了默认值如:<input type="checkbox" checked>
),后续这个checkbox的属性值更新后,attr()还是记录的初始化属性,而不是最新的属性。
而prop()记录的是该元素每次变化后,最新的属性,所以使用prop()方法来获取checked的属性,代码参考:
//使用prop方法,成功获取属性
$('[name=\'id\']').prop('checked',$("#checkAll").prop("checked"));
//使用attr方法,获取不到属性,设置失败
$('[name=\'id\']').prop('checked',$("#checkAll").prop("checked"));
补充一下还有另外一种方法,使用Jquery获取到元素后,转换为DOM对象,再获取其属性:
$('[name=\'id\']').prop('checked',$("#checkAll")[0].prop("checked"));//成功