js Dom树结构分析
对Dom数结构的理解,对用js操作html元素有很大的意义
先来看一下下面这段html代码:(这里就以分析body中的元素来解释,因为我们基本所有的操作基本都围绕body标签来做的)
1 DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
5 <title>title>
6 <script type="text/javascript">
7 window.onload = function () {
8 var _body = document.getElementsByTagName("body")[0];
9 for (var i = 0; i < _body.childNodes.length; i++) {
10 console.log("第"+i+"个标签:"+_body.childNodes[i].nodeName);
11 }
12 }
13 script>
14 head>
15 <body>
16 <input type="text" name="txt" value="" />
17 <a href="http://www.baidu.com">contenta><span>span>
18 <div style="border:solid red 1px;">div>
19 body>
20 html>
第一眼的感觉,body中只有四个标签 而我们用firefox浏览器打开这个html页面,F12开发工具查看页面得元素信息也正是我们所看到的 其他浏览器看到的也基本类似(除IE)
但控制台中打印的内容发现却跟我们想象的并不一样,打印结果是9个元素 其中#text为文本 #comment为注释 如下图
此时用IE打开查看html结构
针对上面的浏览器在解析html元素后可用用下图来解释
由此可以得出结果,浏览器会将 文本 注释也会解释为一个元素节点 值得注意的是: 1、浏览器解析后,