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

来源:9-11 访问兄弟节点

幕布斯7385057

2019-04-25 21:31

<!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回答

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

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

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

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

    gogod

    0开始数的 0代表的是javascript 3代表是css3 previousSibling是同级的节点 就是同一个ul里面的。 012是第一个ul 345是第二个ul 所以取3的时候,它没有上一个

    2019-05-16 16:37:58

    共 1 条回复 >

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

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

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468276 学习 · 21892 问题

查看课程

相似问题