设置节点为document.getElementsByTagName("li")[2];的有关结果问题
设置节点为var x=document.getElementsByTagName("li")[2];
结果的下一个子节点为什么不是document.getElementsByTagName("li")[3];
而是已经是最后一个节点
设置节点为var x=document.getElementsByTagName("li")[2];
结果的下一个子节点为什么不是document.getElementsByTagName("li")[3];
而是已经是最后一个节点
2017-01-04
回复 丢你螺母:之前没明白你的意思,你试试 设置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 的情况。
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]。
举报