为了账号安全,请及时绑定邮箱和手机立即绑定

为什么“ var x=document.getElementsByTagName("li")[2];”从第三个开始检索已经是最后一个?怎么是实现"nextSibling:li=css3"?

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>nextSibling</title>
</head>
<body>
<ul id="u1">  
            <li id="a">javascript</li>  
            <li id="b">jquery</li>  
            <li id="c">html</li>  
        </ul>  
        <ul id="u2">  
            <li id="d">css3</li>  
            <li id="e">php</li>  
            <li id="f">java</li>  
        </ul>  
<script type="text/javascript">
    function get_nextSibling(n){
        var x=n.nextSibling;
        while (x && x.nodeType!=1){
            x=x.nextSibling;
        }
        return x;
    }


    var x=document.getElementsByTagName("li")[2];
    document.write(x.nodeName);
    document.write(" = ");
    document.write(x.innerHTML);
   
    var y=get_nextSibling(x);
   
    if(y!=null){
        document.write("<br />nextsibling: ");
        document.write(y.nodeName);
        document.write(" = ");
        document.write(y.innerHTML);
    }else{
      document.write("<br>已经是最后一个节点");     
    }


 function get_previousSibling(n)
 {
  var a=n.previousSibling;
  while(a && a.nodeType!=1)
  {
   a=a.previousSibling; 
  } 
 return a;
 }
 var b=document.getElementsByTagName("li")[3];
 document.write(b.nodeName);
 document.write("=");
 document.write(b.innerHTML);
 
 var c=get_previousSibling(b);
 if(c!=null)
 {
  document.write(c.nodeName);
  document.write("=");
  document.write(c.innerHTML);
  
 }else{
   document.write("已经是第一个了!");
  }
</script>
</body>
</html>


正在回答

2 回答

楼上的方法可行,但是要告诉你,为啥第三个元素就是最后一个了的原因

首先

var x=document.getElementsByTagName("li")[2];

句话是获取整个html内容中的li元素集合,第一个ul有3个,第二个ul有3个,总共6个

nextSibling

nextSibling 属性返回指定节点之后紧跟的节点,在相同的树层级中。

意思是要是兄弟元素。所以这里的x就是第一ul中的最后一个li,他的后面没有兄弟姐妹了,所以用nexSibling就是最后一个

1 回复 有任何疑惑可以回复我~

将<ul id="u2">  </ul>这两行去掉,成为新的排列

      <ul id="u1">   
            <li id="a">javascript</li>   
            <li id="b">jquery</li>   
            <li id="c">html</li>   
            <li id="d">css3</li>   
            <li id="e">php</li>   
            <li id="f">java</li>   
        </ul>   

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么“ var x=document.getElementsByTagName("li")[2];”从第三个开始检索已经是最后一个?怎么是实现"nextSibling:li=css3"?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信