JS : attr()和prop()和is() 取值的区别

简单区别就是,attr操作HTML元素的属性,prop操作DOM元素的属性,因为DOM会解析某些HTML元素属性到自己身上,此时prop和attr都能操作这些属性。

prop()方法和attr()类似,但是HTML5规定有一种属性在DOM节点中可以没有值,只有出现与不出现两种,例如:

<input id="test" type="radio" name="test" checked value="1">

等价于:

<input id="test" type="radio" name="test" checked="checked" value="1">

attr()和prop()对于属性checked处理:

var radio = $('#test');
radio.attr('checked'); // 'checked'
radio.prop('checked'); // true

显然 prop()返回值更合理一些。

此时,用is()方法判断更好:
jQuery is()方法

var radio = $('#test');
radio.is(':checked'); // true

类似的属性还有selected,处理时最好用is(‘:selected’)。

重点来了!!!

假如页面的标签是动态的,此时标签被过滤掉不在页面存在时,

radio.attr('checked'); // 'checked'
radio.prop('checked'); // true

都无法获取到结果,只有用is()方法,标签不存在时,可以获取到 false值。

发布了55 篇原创文章 · 获赞 43 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_21137441/article/details/103044844
今日推荐