.attr() 和 .prop()
2017-03-03 本文已影响0人
老虎爱吃母鸡
- 问题的产生
jQuery的.attr()和.prop()两个方法的区别 - jQuery的解释
官方的建议:具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr() - 看看stackoverflow上对两者的区别
.attr() VS .prop()
简单概括起来就是,property是DOM对象中的,而attribute是HTML对象中的
例如,自定义的属性,在html里,所以可以使用attrbute访问到,但是不是DOM的API
<input abc='abc'>
$('input')[0].abc //访问到的就是undefined,因为DOMElement没有这个API可以访问
$('input')[0].getAttrbute('abc') //可以访问得到,因为这是定义在html元素中的属性
例如,元素的style属性,两种方法得到的返回值是不一样的,一个是字符串,一个是style对象
<input style="font:arial;"/>
//js
var attr = $('input').attr('style')// 'font:arial;'
var prop = $('input').prop('style')// CSSStyleDeclaration
console.log(attr,prop)
-
另一个回答
Paste_Image.png -
MDN英文版的DOM Element property
所以,很明显可以看出来
Element.innerHTML //这个是property