本帖最后由 roych 于 2015-7-3 14:54 编辑
其实,DOM并不是很神秘的东西。散见于论坛的不少帖子,从本质上来看,都算是DOM。例如todaynew的jQuery小品系列和webbrowser系列,盗梦的webbrowser讲解里也提及了一部分,leonshi的outlook多级导航系列等等。只是用jQuery封装好的占多数,而原生态的太少,便觉得,是时候应该总结一下了。当然,我这里讲的是VBA里的DOM,但它基本上同样适用于JavaScript,只是写法迥异而已。
讲DOM必然涉及HTML,但我不会讲解HTML里每个元素各代表什么,有哪些属性,——有兴趣的版友请自行学习,——而是提供一种如何使用DOM方法来处理元素。毕竟,这个系列不是写给前端工程师看的。
那么,什么是DOM?DOM的字面定义是:文档对象模型(DocumentObject Model)的简称。这里的文档特指网页文档。文档对象指的自然是网页元素了,如,图像、文字等等。其模型是一个什么样的模型呢?我们先来看看一个HTML文件(将以下代码保存为htm或html为扩展名的文件): - <!DOCTYPE html>
- <html>
- <head>
- <title>这是标题</title>
- </head>
- <body>
- <div>
- <h1>标题1</h1>
- <div>
- <p>内容</p>
- </div>
- </div>
- </body>
- </html>
复制代码 看到层次这么分明的嵌套结构,大家想到了什么?树结构!回答正确!大家可以用浏览器打开一个网页,然后右击页面,在弹出的菜单中选择“检查元素”(或“审查元素”),便可以看到这种树结构。
既然DOM是一种树结构,那么,我们是不是可以像操作树控件那样来操作它呢?答案是肯定的,完全可以像操作树控件那样读取节点,任意增删改节点。——当然,也不应胡来,例如,把head移到body后面。
由此我们可以知道,DOM可以做什么了: - 既然可以读取节点,自然就能通过读取页面的节点来获取页面某些特定信息。——“网页信息抓取”由此而生。
- 对节点的增删改类似于树控件的增删改,树控件一般用来做什么?菜单导航。所以,我们也可以据此来设计页面。论坛鼎鼎有名的“通用开发平台”用的导航菜单用的是jQuery控件,而jQuery只是封装了DOM对象的JavaScript框架,所以从这一点来看,它操作的归根到底还是DOM。就好比素颜时是DOM对象,化妆之后便成了jQuery。
今天先到这里,是为DOM开篇。
……附件为普通网页文件。后面讲解选择器时再附上mdb文件。
下一节 |