美文网首页
js中attribute和property的区别

js中attribute和property的区别

作者: 宁骥 | 来源:发表于2017-09-25 10:33 被阅读0次

    另外,常用的Attribute,例如id、class、title等,已经被作为Property附加到DOM对象上,可以和Property一样取值和赋值。但是自定义的Attribute,就不会有这样的特殊优待,例如:

    100

    这个div里面的“title1”就不会变成Property。

    即,只要是DOM标签中出现的属性(html代码),都是Attribute。然后有些常用特性(id、class、title等),会被转化为Property。可以很形象的说,这些特性/属性,是“脚踏两只船”的。

    getAttribute()可以取得任何特性,不管是标准的还是自定义的。

    第一,class特性在变成属性时,名字改成了“className”,因此div1.className和div1.getAttrbute('class')相同。

    第二,上面代码中的div1.attributes是取的attributes这一属性,取出来保存到attrs变量中,attrs就成了一个NamedNodeList类型的对象,里面存储了若干个Attr类型。

    对属性Property可以赋任何类型的值,而对特性Attribute只能赋值字符串!

    另外,对于属性Property的赋值在IE中可能会引起循环引用,内存泄漏。为了防止这个问题,jQuery.data()做了特殊处理,解耦了数据和DOM对象,有兴趣可以了解以下。这不是本文的重点,不做赘述。

    相关文章

      网友评论

          本文标题:js中attribute和property的区别

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