JS——DOM操作(首尾子节点、兄弟节点【firstChild、previousSibling...】)

向右看齐 2021-11-29 12:20 409阅读 0赞

(一)首尾子节点:

【首】:firstChild、 firstElementChild

【尾】:lastChild、 lastElementChild

(首尾两个子节点,有两种写法,主要是因为兼容性问题

详情看以下代码:  (lastChild、 lastElementChild与之相同)

  1. 1 <!DOCTYPE html>
  2. 2 <html lang="en">
  3. 3 <head>
  4. 4 <meta charset="UTF-8">
  5. 5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. 6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. 7 <title>Document</title>
  8. 8 <script>
  9. 9 window.onload=function(){
  10. 10 var oUl=document.getElementById('ul');
  11. 11 //首尾子节点,存在兼容性问题
  12. 12
  13. 13 oUl.firstChild.style.background='red' //在ie9以下的浏览器得以实现效果,ie9以上浏览器不兼容
  14. 14
  15. 15 oUl.firstElementChild.style.background='red' //在ie9以上浏览器得以兼容,chrome,ff等
  16. 16 }
  17. 17 </script>
  18. 18 </head>
  19. 19 <body>
  20. 20 <ul id="ul">
  21. 21 <li></li>
  22. 22 <li></li>
  23. 23 <li></li>
  24. 24 <li></li>
  25. 25 </ul>
  26. 26 </html>

由此可见,第13行代码:firstChild会在ie9以下的版本中得以实现;而第15行代码:firstElementChild会在ie9以上的版本中得以实现

但是!

如何解决以上问题?使得浏览器具有兼容性!!!

//解决方法如下:

var iResult1=oUl.firstElementChild || oUl.firstChild;   

//声明一个iResult1变量,让浏览器自行判断选择的DOM操作对象

iResult1.style.background=’blue’

(二)兄弟节点:

【前】:previousSibling、 previousElementSibling

【后】:nextSibling、   nextElementSibling

(兄弟两个子节点,也有两种写法,主要是也因为兼容性问题

详情看以下代码:  (nextSibling、 nextElementSibling与之相同)

  1. 1 <!DOCTYPE html>
  2. 2 <html lang="en">
  3. 3 <head>
  4. 4 <meta charset="UTF-8">
  5. 5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. 6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. 7 <title>Document</title>
  8. 8 <script>
  9. 9 window.onload=function(){
  10. 10 var oLi=document.getElementById('li');
  11. 11 //兄弟节点,存在兼容性问题
  12. 12
  13. 13 oLi.previousSibling.style.background='red' //在ie9以下的浏览器得以实现效果,ie9以上浏览器不兼容
  14. 14
  15. 15 oLi.previousElementSibling.style.background='red' //在ie9以上浏览器得以兼容,chrome,ff等
  16. 16 }
  17. 17 </script>
  18. 18 </head>
  19. 19 <body>
  20. 20 <ul id="ul">
  21. 21 <li></li>
  22. 22 <li id="li">xxx</li>
  23. 23 <li></li>
  24. 24 <li></li>
  25. 25 </ul>
  26. 26 </html>

由此可见,第13行代码:previousSibling会在ie9以下的版本中得以实现;而第15行代码:previousElementSibling会在ie9以上的版本中得以实现

同样地!

如何解决以上问题?使得浏览器具有兼容性!!!

//解决方法如下:

var iResult2=oLi.previousElementSibling || oLi.previousSibling *;   *

//声明一个iResult2变量,让浏览器自行判断选择的DOM操作对象

iResult2.style.background=’blue’

转载于:https://www.cnblogs.com/ytraister/p/10934080.html

发表评论

表情:
评论列表 (有 0 条评论,409人围观)

还没有评论,来说两句吧...

相关阅读