两个都是jQuery中的方法,用来设置或者获取元素的属性
先说下面的内容:
在HTML代码中,为了便于操作页面上的元素,JS将元素转化为DOM对象,而有些属性并不是存储属性值的方式,比如checkbox中的cheched属性,在DOM对象中的存储方式是true。
而attr获取的属性是显示在页面中的,也就是浏览器Element中可以看到的属性,prop获取的属性是DOM对象中的属性
由此产生的区别:
当网页元素和DOM对象的同一个属性显示不同时,两者使用会发生区别,如图二
图一:
例如
checkbox属性:用attr属性获取到的是checked,而用prop获取到的是true,
而如果页面中没有写checked = ‘checked’属性,但是点击页面后是存在该属性的,只不过不会显示在浏览器Element中,那么attr获取到的是undefined,而prop是可以获取到true的,所以这种情况是选择prop方法
图二:
所以简单小结:
如果浏览器Element中的元素属性和DOM对象的属性是一致的,那么prop和attr是一样的
DOM对象中有很多其他的属性不会在元素属性上显示出来,如果要操作这些属性,那么只能使用prop
如果不一致,比如一个显示一个不显示或者一个是属性值,一个是布尔值,这种情况下要按照需求选择使用哪个方法。
原文:https://www.cnblogs.com/Helen-code/p/12423172.html