|
@@ -0,0 +1,69 @@
|
|
|
|
+<!DOCTYPE html>
|
|
|
|
+<html lang="en">
|
|
|
|
+
|
|
|
|
+<head>
|
|
|
|
+ <meta charset="UTF-8">
|
|
|
|
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
+ <title>Document</title>
|
|
|
|
+</head>
|
|
|
|
+
|
|
|
|
+<body>
|
|
|
|
+ <div id="div1">111111111</div>
|
|
|
|
+ <p id="p1">22222222</p>
|
|
|
|
+ <ul id="ul1">
|
|
|
|
+ <li id="li1">1</li>
|
|
|
|
+ <li>2</li>
|
|
|
|
+ <li>3</li>
|
|
|
|
+ </ul>
|
|
|
|
+ <script>
|
|
|
|
+ var div1 = document.getElementById('div1')
|
|
|
|
+ var p1 = document.getElementById('p1')
|
|
|
|
+ var ul1 = document.getElementById('ul1')
|
|
|
|
+ /* console.log(div1)
|
|
|
|
+ console.log(div1.nodeType)//节点类型
|
|
|
|
+ console.log(div1.nextSibling)// 下一个节点
|
|
|
|
+ console.log(div1.previousSibling)//上一个节点 */
|
|
|
|
+ /*
|
|
|
|
+ document是没有nodeValue的:null
|
|
|
|
+ 元素节点是没有nodeValue的:null
|
|
|
|
+ 属性节点id的nodeValue:d1
|
|
|
|
+ 内容节点的nodeValue:hello HTML DOM
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+ // console.log(div1.nextElementSibling)//下一个元素节点
|
|
|
|
+ // console.log(div1.previousElementSibling)//上一个元素节点
|
|
|
|
+
|
|
|
|
+ // console.log(div1.nodeName)//节点名称
|
|
|
|
+ // console.log(p1.nodeName)
|
|
|
|
+ /*
|
|
|
|
+ 元素节点的 nodeName 与标签名相同
|
|
|
|
+ 属性节点的 nodeName 与属性名相同
|
|
|
|
+ 文本节点的 nodeName #text
|
|
|
|
+ 文档节点的 nodeName #document
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+ function next(elem){
|
|
|
|
+ do{
|
|
|
|
+ elem = elem.nextSibling
|
|
|
|
+ } while(elem.nodeType != 1)
|
|
|
|
+ return elem
|
|
|
|
+ }
|
|
|
|
+ console.log(next(p1))
|
|
|
|
+
|
|
|
|
+ // console.log(ul1.firstChild)
|
|
|
|
+ // console.log(ul1.lastChild)
|
|
|
|
+ // console.log(ul1.firstElementChild)
|
|
|
|
+
|
|
|
|
+ function first(elem){
|
|
|
|
+ elem = elem.firstChild
|
|
|
|
+ if(elem.nodeType != 1){
|
|
|
|
+ elem = next(elem)
|
|
|
|
+ }
|
|
|
|
+ return elem
|
|
|
|
+ }
|
|
|
|
+ console.log(first(ul1))
|
|
|
|
+ </script>
|
|
|
|
+</body>
|
|
|
|
+
|
|
|
|
+</html>
|