11_节点遍历.html 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <div id="div1">111111111111111</div>
  11. <p id="p1">222222222222</p>
  12. <h1>hahahhahhhaahhahahh</h1>
  13. <ul id="ul1">
  14. <li>1</li>
  15. <li>2</li>
  16. <li>3</li>
  17. </ul>
  18. <script>
  19. var div1 = document.getElementById('div1')
  20. var p1 = document.getElementById('p1')
  21. var ul1 = document.getElementById('ul1')
  22. // console.log(div1.nodeType)
  23. // console.log(p1.nodeName)
  24. // console.log(div1.nextElementSibling)
  25. // console.log(div1.nextSibling)
  26. // console.log(div1.previousSibling)
  27. // console.log(div1.previousElementSibling)
  28. //nextSibling 指向下一个兄弟节点
  29. //nextElementSibling 指向下一个元素节点
  30. //previousSibling 指向上一个兄弟节点
  31. //previousElementSibling 指向上一个元素节点 如果这个节点就是第一个元素节点 那么该值为null
  32. console.log(p1.nextElementSibling)
  33. //firstChild 指向在childNodes列表中的第一个节点
  34. console.log(ul1.firstChild)
  35. console.log(ul1.lastChild)
  36. function next(elem){
  37. do{
  38. elem = elem.nextSibling
  39. }while(elem.nodeType != 1)
  40. return elem
  41. }
  42. console.log(next(div1))
  43. function first(elem){
  44. elem = elem.firstChild
  45. if(elem.nodeType != 1){
  46. elem = next(elem)
  47. }
  48. return elem
  49. }
  50. console.log(first(ul1))
  51. </script>
  52. </body>
  53. </html>