先推荐几篇博文吧:http://www.cnblogs.com/godtrue/p/4248088.html
http://www.cnblogs.com/godtrue/p/4248608.html
写的很仔细,我概括一下:
根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
- 整个文档是一个文档节点
- 每个 HTML 元素是元素节点
- HTML 元素内的文本是文本节点
- 每个 HTML 属性是属性节点
- 注释是注释节点
html 文档是有结构的:这就是为什么当一个标签没有闭合时,整个页面会乱掉!结构被破坏了!而html文档结构与数据结构中的树很相似,都有父节点,子节点(root,和最后的叶子除外咯!)而每个节点又有他的属性,方法.而js ,css 就是通过控制这些元素来控制整个页面的显示.
而浏览器就是通过这些规则,来渲染整个页面的输出(assign).记得做课设时,有同学做了浏览器,其实就是直接调用了IE浏览器,整个渲染工作还是有IE 来进行.
通过Js操作节点时,必须要有"指针" ,这里的指针指的是途径,比如,删除一个元素节点(节点有5中,必须区分清楚),必须清楚该元素的父元素:不能直接通过ID来删除,而是通过父亲的removeChile()方法实现.这里的父节点相当于一个指针.增加一个元素节点,也必须添加在已有的元素节点上去.而更改一个文本节点的内容,也是通过他的父节点:元素节点实现的.在overflowstack 看过一个问题:删除整个HTML文档使用的方法是innerHTML=''.<html>标签内的东西都没有了,但仍然有<html>标签.原因就是没有访问到html标签的父亲节点.(正确的方法是调用document.open()方法.(可以理解为访问了HTML标签的父节点) .
我对DOM的理解就是这些了.如您有更好的见解,请不吝赐教!