问答详情
源自:9-11 访问兄弟节点

为什么var x=document.getElementsByTagName("li")[4];里面的4改成3,结果输出 已经是最后一个节点

<!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_previousSibling(n){

        var x=n.previousSibling;

        while (x && x.nodeType!=1){

            x=x.previousSibling;

        }

        return x;

    }

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

    //   document.write(x.nodeName+" = "+x.innerHTML);

   var y=get_previousSibling(x);

    

     if(y!=null){

        document.write("<br />previousSibling  : ");

        document.write(y.nodeName);

        document.write(" = ");

        document.write(y.innerHTML);

    }else{

       document.write("<br>已经是最后一个节点");      

     }


</script>

</body>

</html>


提问者:幕布斯7385057 2019-04-25 21:31

个回答

  • 狼王梦0_0
    2019-08-19 19:10:41

    你document.getElementsByTagName()得到是li的数组,而不是节点数组,如果你取其中第3个时,你的节点就相当于是第二个ul里面的第一个,没有上一个

  • Gray_Zhang
    2019-05-13 14:28:32

    同问,为什么  取第三个(li),函数返回的也是空也就是y为null

  • qq_一向懒散随性不想改变作风_0
    2019-04-29 09:27:13

    nextSibling 向下取值(value)  previousSibling向上取值(value),你定义的getElementsByTagName(li)【4】会根据 li 的位置来取同一级别的值