设置节点为document.getElementsByTagName("li")[2];的有关结果问题

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

慕丝5359371

2017-01-04 22:08

设置节点为var x=document.getElementsByTagName("li")[2];

结果的下一个子节点为什么不是document.getElementsByTagName("li")[3];

而是已经是最后一个节点

写回答 关注

3回答

  • 雷子_java
    2017-01-09 10:35:41
    已采纳

    回复 丢你螺母:之前没明白你的意思,你试试 设置var x=document.getElementsByTagName("li")[3];的时候就会得到
    相应的前一个子节点(的值null),和后一个子节点(的值php), 如果设置设置var x=document.getElementsByTagName("li")[2];的时候就会得到
    相应的前一个子节点(的值jquery),和后一个子节点(的值null)。按理来说document.getElementsByTagName("li")应该会获取到6个元素,但是上面两个例子,都没在所获取数组的边缘,还是得到了null值,我觉得  nextSibling 属性可返回某个节点之后紧跟的节点(处于同一树层级中),它是按照html的文档结构去寻找洗衣歌节点的,在这个例子中一个UL中只有三个li。所以出现了,上面的null 的情况。

    雷子_jav... 回复慕丝5359...

    不麻烦,客气了

    2017-01-12 12:33:01

    共 2 条回复 >

  • 雷子_java
    2017-01-06 11:17:46

    var x=document.getElementsByTagName("li")[2];
        document.write(x.nodeName);
        document.write(" = ");
        document.write(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>已经是最后一个节点");      
        }


    你是说这个else中 的 ‘已经是最后一个节点’吗?  按照这个分支条件 如果 y==null, 那么 x已经是第一个节点,不是最后一个,这里的说法是错误的。


    拟题目中所说 var x=document.getElementsByTagName("li")[2];li一共有三个 下标为 0,1,2,自然不会存在

    document.getElementsByTagName("li")[3]。

    慕丝5359... 回复慕粉4390...

    感谢,

    2017-01-10 17:13:28

    共 3 条回复 >

  • 雷子_java
    2017-01-05 10:50:02

    怎么感觉描述的不是很清楚

    慕丝5359...

    代码没粘贴 就是本章练习的源代码

    2017-01-05 19:11:59

    共 1 条回复 >

JavaScript进阶篇

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

468276 学习 · 21892 问题

查看课程

相似问题