使用attr()方法获取不到checkbox的checked属性解决方案

使用attr()方法获取不到checkbox的checked属性解决方案

  今天遇到一个全选/取消全选的功能,使用Jqueryattr()方法获取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"));//成功
posted @ 2022-04-19 17:13  青栀i  阅读(54)  评论(0)    收藏  举报  来源