JQuery中attr与prop的区别
先上结论:
在DOM标签里具有 true 和 false 值的属性使用prop(),如 checked, selected 或者 disabled 等,其他的使用 attr()
发现两者不同的契机
有一次在使用checkbox的时候,使用attr的情况下,如果设置了checked,不管页面上如何操作获得到checkbox的状态总是被check的,要么就是获取不到,才发现了prop这个东西
产生不同结果的原因
根据博客文章介绍 attr() 里面,最关键的两行代码
1 |
|
prop() 里面,最关键的两行代码
1 |
|
很明显的看出来,attr使用的是 DOM 的 API setAttribute() 和 getAttribute() 方法操作的属性元素节点。(这个是HTML的概念)
而prop实用的是JS中的Object对象,可以理解为 document.getElementById(el)[name] = value,这使得DOM的属性转化成了 element 的一个成员变量。(这个是JS的概念)