9-11 访问兄弟节点
本节编程练习不计算学习进度,请电脑登录imooc.com操作

访问兄弟节点

1. nextSibling 属性可返回某个节点之后紧跟的节点(处于同一树层级中)。

语法:

nodeObject.nextSibling

说明:如果无此节点,则该属性返回 null。

2. previousSibling 属性可返回某个节点之前紧跟的节点(处于同一树层级中)。

语法:

nodeObject.previousSibling  

说明:如果无此节点,则该属性返回 null。

注意: 两个属性获取的是节点。Internet Explorer 会忽略节点间生成的空白文本节点(例如,换行符号),而其它浏览器不会忽略

解决问题方法:

判断节点nodeType是否为1, 如是为元素节点,跳过。

运行结果:

LI = javascript
nextsibling: LI = jquery

 

 

 

任务

试一试,编写get_previousSibling 函数,获得指定节点的上一个节点。

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>nextSibling</title>
  6. </head>
  7. <body>
  8. <ul id="u1">
  9. <li id="a">javascript</li>
  10. <li id="b">jquery</li>
  11. <li id="c">html</li>
  12. </ul>
  13. <ul id="u2">
  14. <li id="d">css3</li>
  15. <li id="e">php</li>
  16. <li id="f">java</li>
  17. </ul>
  18. <script type="text/javascript">
  19. function get_nextSibling(n){
  20. var x=n.nextSibling;
  21. while (x && x.nodeType!=1){
  22. x=x.nextSibling;
  23. }
  24. return x;
  25. }
  26.  
  27. var x=document.getElementsByTagName("li")[0];
  28. document.write(x.nodeName);
  29. document.write(" = ");
  30. document.write(x.innerHTML);
  31.  
  32. var y=get_nextSibling(x);
  33.  
  34. if(y!=null){
  35. document.write("<br />nextsibling: ");
  36. document.write(y.nodeName);
  37. document.write(" = ");
  38. document.write(y.innerHTML);
  39. }else{
  40. document.write("<br>已经是最后一个节点");
  41. }
  42.  
  43. </script>
  44. </body>
  45. </html>
下一节