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

为什么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>


正在回答

3 回答

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

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

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

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

gogod

0开始数的 0代表的是javascript 3代表是css3 previousSibling是同级的节点 就是同一个ul里面的。 012是第一个ul 345是第二个ul 所以取3的时候,它没有上一个
2019-05-16 回复 有任何疑惑可以回复我~

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

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

举报

0/150
提交
取消

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

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