DOM节点
DOM的一个想法
让我们从下面的HTML开始学习吧:
<html>
<head>
<title>The title</title>
</head>
<body>
The body
</body>
</html>
DOM看起来如下:

最顶层只有__html__节点,有两个子节点:head 和 body,其中__head__有子标签__title__。
HTML标签为DOM树中的元素节点,一些文本可以成为文本节点。它们俩都是节点,仅仅类型不一样。
// 修改<BODY>元素背景为红色
document.body.style.backgroundColor = 'red';
如果你运行了上面的代码,并且想恢复到默认风格:
document.body.style.backgroundColor = '';
我们还可以更改节点内容,检索节点,创建新的元素并把它们添加到文档中。
但我们需要先知道DOM的结构和DOM有哪些内容。
另一个文档
让我们看一个更加复杂的DOM文档
<!DOCTYPE HTML>
<html>
<head>
<title>The document</title>
</head>
<body>
<div>Data</div>
<ul>
<li>Warning</li>
<li></li>
</ul>
<div>Top Secret!</div>
</body>
</html>
下面为我们展开后的文档树

使用开发工具查看DOM
我们可以很方便的使用浏览器开发工具查看DOM树。例如
- 打开DOM树2
- 打开FireBug, Chrome & IE或其他浏览器的开发工具
在FireBug或浏览器开发工具中定位到__HTML标签。
下图为从Chrome开发者工具中的截图,通常它和HTML标签布局一样。

*在开发者工具中显示的DOM树不是完整的。__有一些元素是在DOM树中存在但开发者工具中不显示出来。空白节点
现在让我们用图片来近距离介绍空白节点吧。空白符在HTML中被标识为文本并且是文本节点。这些文本节点不会显示在开发者工具当中,但它们确确实实存在的。

顺便说一下,注意到__li__节点没有任何__空白节点__。那是因为它不含任何节点。
__空白节点__生成于两个节点之间。因此当我们消除标签间的空间时它也会消失。
下面的代码不会生成空白节点。<!DOCTYPE HTML><html><head><title>Title</title></head><body></body></html>其他的节点类型
DOCTYPE
你留意到上面例子中的__DOCTYPE__吗?他没有在图片中显示出来,但它也是一个__DOM节点__,存在于__HTML__的最上头。
__DOCTYPE__是__HTML__规格中的一部分,它还会指导Web浏览器当前页面中的文本标记的版本信息。注释
注释也是一种节点:
<html> ... <!-- comment --> ... </html>上面的注释也会保存到DOM树中,它由节点类型为__注释__,文本类型的内容组成。
总结
现在你已经了解了DOM的结构,它的布局,包含哪些节点。
下一章节我们将讲解如何在JavaScript中遍历DOM。
原文链接
DOM节点的更多相关文章
- 深入理解DOM节点操作
× 目录 [1]创建节点 [2]插入节点 [3]移除节点[4]替换节点[5]复制节点 前面的话 一般地,提起操作会想到“增删改查”这四个字,而DOM节点操作也类似地对应于此,接下来将详细介绍DOM的节 ...
- 深入理解DOM节点关系
× 目录 [1]父级属性 [2]子级属性 [3]同级属性[4]包含方法[5]关系方法 前面的话 DOM可以将任何HTML描绘成一个由多层节点构成的结构.节点分为12种不同类型,每种类型分别表示文档中不 ...
- 深入理解DOM节点类型第五篇——元素节点Element
× 目录 [1]特征 [2]子节点 [3]特性操作[4]attributes 前面的话 元素节点Element非常常用,是DOM文档树的主要节点:元素节点是html标签元素的DOM化结果.元素节点主要 ...
- 深入理解DOM节点类型第六篇——特性节点Attribute
× 目录 [1]特征 [2]属性 [3]方法 前面的话 元素的特性在DOM中以Attr类型表示,从技术角度讲,特性是存在于元素的attributes属性中的节点.尽管特性是节点,但却不是DOM节点树的 ...
- 深入理解DOM节点类型第四篇——文档片段节点DocumentFragment
× 目录 [1]特征 [2]作用 前面的话 在所有节点类型中,只有文档片段节点DocumentFragment在文档中没有对应的标记.DOM规定文档片段(document fragment)是一种“轻 ...
- 深入理解DOM节点类型第一篇——12种DOM节点类型概述
× 目录 [1]元素 [2]特性 [3]文本[4]CDATA[5]实体引用[6]实体名称[7]处理指令[8]注释[9]文档[10]文档类型[11]文档片段[12]DTD 前面的话 DOM是javasc ...
- DOM 节点的克隆与删除
无奈的开头 关于DOM节点操作,如果仅仅是根据标准API来操作,那是最简单不过的了.但是现实中却哪有这么容易的问题让我们解决,其实不仅仅是节点的克隆与删除,节点的添加也是如此,而且添加节点需要考虑的情 ...
- DOM节点属性
节点属性 在文档对象模型 (DOM) 中,每个节点都是一个对象.DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeType ...
- 第6章 DOM节点操作
一.创建节点 为了使页面更加智能化,有时我们想动态的在 html 结构页面添加一个元素标签,那么 在插入之前首先要做的动作就是:创建节点. varbox=$('<div id="box ...
- dom节点的操作
dom节点的操作 -- jQuery 内部插入 1.(结尾)append 方法 . appendto方法(为了方便链式操作) (开头)prepend方法 $('#div1').ap ...
随机推荐
- SOLD原则
借鉴: 1. 单一职责原则 单一职责原则 (Single Responsibility Principle,SRP) 指出,每个方法或类应当有且仅有 一个改变的理由.这意味着每个方法或类应当做一件事情 ...
- linux一些基本命令
linux查看自己外网ip:curl ifconfig.me 删除目录:rm -rf 目录名 查看版本:rpm -q 版本 修改文件的用户权限:chown kds:kds agent.crontab修 ...
- PHP 实现“贴吧神兽”验证码
最早看到 “贴吧神兽” 验证码是在百度贴吧,吧主防止挖坟贴,放出了究极神兽验证码 例如: 地址:http://tieba.baidu.com/p/3320323440 可以用 PHP + JavaSc ...
- ExtJS笔记 Ext.data.Types
This is a static class containing the system-supplied data types which may be given to a Field. Type ...
- mysql中影响myisam引擎写入性能的三项设置
一.LOW_PRIORITY1.对于myisam默认是写操作优先,读操作滞后.通过该项更改,可以使读操作优先,写操作在有空闲的时候再写入.但该项可能在理论上造成,写被永远阻塞. SQL语句中使用示例: ...
- C# 构造post参数一种看起来直观点的方法[转]
因为本人经常爱用C#做一些爬虫类的小东西,每次构造post参数的时候,都是直接字符串拼接的方式的,有时候改起来不太方便. 场景: 需要post一个地址 参数列表 : username:管理员 pass ...
- (转)百度编辑器java使用
说在前面 工作中会遇到很多需要使用富文本编辑器的地方,比如我现在发布这篇文章离不开这个神器,而且现在网上编辑器太多了.记得之前,由于工作需要自己封装过一个编辑器的公共插件,是用ckeditor改版的, ...
- Stack的c实现
用c语言实现stack的初始化,push,pop和Clear操作 #include<stdio.h> #include<stdlib.h> #include<assert ...
- input只能输入数字并限制长度
<style> /*在chrome下移除input[number]的上下箭头*/ input::-webkit-outer-spin-button,input::-webkit-inner ...
- 使用 apache2 + `mod_proxy_uwsgi` + uwsgi + upstart 部署
使用 apache2 + mod_proxy_uwsgi + uwsgi + upstart 部署 网上运行 python wsgi 的应用时,大部分的资料都是使用 nginx .uwsgi ,很少资 ...