js高级程序设计中的特性和属性区分

参考:https://blog.51cto.com/jsw55667/1932634
其实attribute和property两个单词,翻译出来都是属性,但是《javascript高级程序设计》将它们翻译为特性和属性,以示区分。

定义

  • 元素特性attribute是指HTML元素标签的特性 id、class、title、a都是特性,其中a叫做自定义特性
  • 对象属性property是指元素节点的属性 id、title、b都是属性,其中b叫做自定义属性

共有

  • id、title等既是属性,也是特性。修改属性,其对应的特性会发生改变;修改特性,属性也会改变

  • 【1】修改元素特性(以title为例)

    测试内容

  • 【2】修改对象属性

    测试内容

特殊

  • style和onclick是两个特殊的特性,它们虽然有对应的属性名,但属性值与通过getAttribute()返回的值并不相同
  • 【1】style  
    通过getAttribute()访问时,返回的style特性值中包含的是CSS文本,而通过属性来访问它则会返回一个CSSStyleDeclaration对象

  • 【2】onclick  
    如果通过getAttribute()访问,会返回相应代码的字符串。而访问onclick属性时,会返回一个javascript函数  
    [注意]其他事件处理程序也类似
    测试内容

      
    [注意]如果通过对象属性设置onclick属性,则不会有对应的元素特性
    测试内容

你可能感兴趣的:(特性属性区别)