jQuery中attr与prop方法之间有什么区别?

原创 野人  2022-01-20 20:12  阅读 99 次

在这篇《jQuery如何获取HTML标签中的自定义属性和固有属性?》文章中,已经有介绍过了jQuery中attr与prop方法,但是实际上在使用中,用attr好像是都可以获取到,也没有感受到这两个方法之间到底有区别,为什么获取到属性还要那么麻烦,还要分两个方法来获取着实有点摸不着头脑,那么接下来小编就拿个真实的案例,给大家说下究竟为何要用这两个方法。

比如下面的这个判断复选框是否选中的例子:

<input id="test" type="checkbox" />

如果使用prop方法去获取的话,结果正确,而如果用attr方法去获取的话,结果为undefined,也就是不正确的。

$("#test").prop("checked");//正确结果,可通过不断地勾选/不勾选来判断结果是否实时正确哦。
$("#test").attr("checked");//不正确的结果

类似的像checkbox,radio,select这类的HTML标签也是有这样的特殊情况的,所以大家还是要根据官方的文档去使用方法啊,这样才能避免踩坑。

所以敲黑板了,固有属性用prop方法去获取,自定义属性用attr方法去获取,准没错。

参考资料

https://www.cnblogs.com/Showshare/p/different-between-attr-and-prop.html

20222.2.16补充更新

今天在给HTML标签设置一个自定义属性的时候,使用了prop方法,然后就出现了意外的情况,也就是这个自定义属性在HTML标签上并没有出现,而是到元素对象上,这里可能有些朋友不太理解到了对象上是什么意思,大家可以直接点我查看,我就不再多做解释了。

究其原因还是我用错了方法,没有遵循固有属性用prop,自定义属性用attr方法原则(也就是上面说的),导致出现了意外的错误,所以大家在使用的时候还是要多注意哈。

本文地址:https://www.yerenwz.com/5607.html
版权声明:本文为原创文章,版权归 野人 所有,欢迎分享本文,转载请保留出处!

发表评论