|
@@ -0,0 +1,70 @@
|
|
|
+<!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">1111111</div>
|
|
|
+ <p id="p1">2222222222</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 li1 = document.getElementById('li1')
|
|
|
+ var ul1 = document.getElementById('ul1')
|
|
|
+ // console.log(div1)
|
|
|
+ // console.log(div1.nodeType)
|
|
|
+ // console.log(div1.nextSibling)
|
|
|
+ // console.log(div1.previousSibling)
|
|
|
+ //nextSibling 指向下一个兄弟节点
|
|
|
+ //previousSibling 指向上一个兄弟节点
|
|
|
+ /*
|
|
|
+ 元素节点的 nodeName 与标签名相同
|
|
|
+ 属性节点的 nodeName 与属性名相同
|
|
|
+ 文本节点的 nodeName 始终是 #text
|
|
|
+ 文档节点的 nodeName 始终是 #document
|
|
|
+ */
|
|
|
+ // console.log(div1.nodeName)
|
|
|
+ // console.log(p1.nodeName)
|
|
|
+ // console.log(li1)
|
|
|
+ //nextElementSibling 下一个元素节点
|
|
|
+ // console.log(li1.nextElementSibling)
|
|
|
+ // console.log(li1.previousElementSibling)
|
|
|
+
|
|
|
+ console.log(li1.nodeName)
|
|
|
+ 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)
|
|
|
+
|
|
|
+ //elem.nodeName == 'LI'
|
|
|
+ function first(elem){
|
|
|
+ elem = elem.firstChild
|
|
|
+ if(elem.nodeType != 1 ){
|
|
|
+ elem = next(elem)
|
|
|
+ }
|
|
|
+ return elem
|
|
|
+ }
|
|
|
+ console.log(first(ul1))
|
|
|
+ </script>
|
|
|
+</body>
|
|
|
+
|
|
|
+</html>
|