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)。

更多相关文章

  1. 如何使用Watir访问自定义属性的元素?
  2. easyui-tree根据叶子节点获取父节点值(N层)
  3. “for”属性的目的是什么?
  4. 为什么在vs里使用css时会说FILTER非已知的css属性名.放在前端html
  5. 使用shell从标记中提取多个属性
  6. html页面中给img标签的src属性赋值为一张图片的存储路径,图片不显
  7. 在更新时,跳过更新yii中的某些属性
  8. PHP递归函数删除所有子节点导致stackoverflow
  9. php时间函数——获取过去24小时内每个小时的节点

随机推荐

  1. JavaScript学习笔记-JS中的异步编程
  2. 如何使用javascript或vbscript或jquery设
  3. 在rails中基于javascripts on / off处理H
  4. 代码点火-如何从控制器返回Json响应
  5. 在Javascript中将下拉字段乘以文本字段
  6. 如何在HTML页面中维护SWF文件的大小?
  7. Angularjs - NgTable在重新加载时未定
  8. 从屏幕外动画div,没有绝对位置?
  9. JavaScript的前世今生
  10. 是否可以知道文件是否在用户的浏览器缓存