Dom基础概念:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 5 <title>无标题文档</title>
 6 <script>
 7 /*
 8 DOM : Document Object Model 文档对象模型
 9 文档:html页面
10 文档对象:页面中元素
11 文档对象模型:定义 为了能够让程序(js)去操作页面中的元素
12 
13 DOM会把文档看作是一棵树,同时定义了很多方法来操作这棵数中的每一个元素(节点)
14 DOM节点
15 
16 getElementById
17 getElementByTagName
18 document
19 document.body
20 */
21 </script>
22 </head>
23 
24 <body>
25     <div id="div1">
26         <p>11111111</p>
27         <ul id="ul1">
28             <li>11111</li>
29             <li>22222</li>
30             <li>33333</li>
31             <li>44444</li>
32         </ul>
33     </div>
34 </body>
35 </html>

 

Dom树:

 

DOM节点
childNodes \ children

  • 获取第一级子元素
  • 有兼容性问题(空白节点), nodeType属性

firstChild \ firstElementChild

  • 获取子元素里的第一个

lastChild \ lastElementChild

  • 获取子元素里的最后一个

nextSibling \ nextElementSibling

  • 获取指定元素的下一个兄弟节点

previousSibling \ previousElementSibling

  • 获取指定元素的上一个兄弟节点


parentNode

  • 获取父节点,点击链接隐藏整个li


parentNode&offsetParent区别

  • offsetLeft \ offsetTop
  • offsetWidth \ clientWidth

有兼容性问题,标准下不能获取两层
获取:getAttribute(名称)
设置:setAttribute(名称, 值)
删除:removeAttribute(名称)
第三种方式的好处:自定义属性、相对网址

创建DOM元素
createElement(标签名)        创建一个节点
appendChild(节点)            追加一个节点
例子:留言板插入内容
插入元素
insertBefore(节点, 原有节点)    在已有元素前插入
例子:倒序留言板插入内容

 

删除DOM元素

  • removeChild(节点)        删除一个节点
  • 例子:删除留言

替换DOM元素

  • replaceChild(节点, 已有节点)    替换节点