美文网首页
.attr() 和 .prop()

.attr() 和 .prop()

作者: 老虎爱吃母鸡 | 来源:发表于2017-03-03 09:51 被阅读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

相关文章

网友评论

      本文标题:.attr() 和 .prop()

      本文链接:https://www.haomeiwen.com/subject/yxikettx.html