HTML中的attribute和property的区别

DOM有三种节点类型:元素节点、属性节点、文本节点,HTML里的attribute其实就是指属性节点,举个例子:在<h1 id="title">Head</h1>里,h1是元素节点,id="title"是属性节点, Head 是文本节点,在这里可以理解为h1这个元素节点包含一个属性节点和一个文本节点。读写attribute的方法是getAttribute(), setAttribute(), 例如获取id这个属性的值:var tem1 = document.getElementById("title"); var idValue = tem1.getAttribute("id");

说完了attribute再来说说property,property简单的来说就是HTML对象的字段或者说属性(不是attribue),例如获取h1标签的值, var tem1 = document.getElementById("title"); var idValue = tem1.nodeName;同样的用法还有tem1.title, tem1.id等等。

现在来看看attribute和property的区别:attribute是一种节点(属性节点),和元素节点是一个级别的节点,或者说你可以简单的认为attribute是一个属性节点对象,而property则是对象的一个字段,可能元素节点对象的字段或属性节点对象的字段还有文本节点对象。例如属性节点对象有个property叫nodeName, 例如: var tem1 = document.getElementById("title"); var attr = tem1.getAttributeNode("id");alert(attr.nodeName);其实Dom中关于attribute和property一个非常迷惑人的地方在于,对于常见的几个attribute,例如id, class, title等,既提供了attribute的访问方式(因为它们本来就是attribute,所以肯定可以通过attribue的方式),同时为了兼容Dom1之前的写法(有时又称之DOM0),将这几种常见的attribute的值又同时保存为元素节点对象的property, 因此我们既可以通过attribue的写法 var idValue = tem1.getAttribute("id");来获取attribute的值,又可以通过property的写法来获取attribute的值,如 var idValue = tem1.id。

总结:attribute是属性节点,它有许多方法来读写它的值,如getAttrute()/setAttribute, 而property则是节点对象的一个字段或者说属性(不是attribute)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章