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

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

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

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

而是已经是最后一个节点

正在回答

2 回答

回复 丢你螺母:之前没明白你的意思,你试试 设置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 的情况。

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

慕丝5359371 提问者

懂了谢谢阿 麻烦你了
2017-01-10 回复 有任何疑惑可以回复我~
#2

雷子_java 回复 慕丝5359371 提问者

不麻烦,客气了
2017-01-12 回复 有任何疑惑可以回复我~

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]。

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

慕丝5359371 提问者

在练习的过程中 我把设置节点为var x=document.getElementsByTagName("li")的值改变了几次。 像你说的不存在的3 但如果设置var x=document.getElementsByTagName("li")[3];的时候就会得到 相应的前一个子节点(的值null),和后一个子节点(的值php)。 为什么这里getElementsByTagName("li")[3]好使呢 我其实在纠结这个=。=
2017-01-06 回复 有任何疑惑可以回复我~
#2

慕粉4390729 回复 慕丝5359371 提问者

你把那个空格删掉,标签都连到一起,就没问题,改数字试一试
2017-01-08 回复 有任何疑惑可以回复我~
#3

慕丝5359371 提问者 回复 慕粉4390729

感谢,
2017-01-10 回复 有任何疑惑可以回复我~

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

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

慕丝5359371 提问者

代码没粘贴 就是本章练习的源代码
2017-01-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

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