if(y!=null) 这个是什么意思?
while (x && x.nodeType!=1)
这里已经判断节点的上个兄弟节点存在了
那么为什么还要 if(y!=null)这句
y!=null是节点存在 还是 不为空节点 的意思
是不是首先判断节点存在再判断节点不是空节点我猜的
2017-03-22
上面x!=null是提供了一个方法,只是确保函数一定运行,后面判断y!=null是判断var x=document.getElementsByTagName("li")[0];有没有前一个节点的,判断的内容不是同一个,我也是弄了两天才弄明白的,首先你要分开看,不要揉在一起想,把每一段为什么要这样写的目的搞清楚了,你就对这个代码有全新认识了。
第一段:
function get_previousSibling(n){
var x=n.previousSibling;
while (x && x.nodeType!=1){
x=x.previousSibling;
}
return x;
}
第二段:
var x=document.getElementsByTagName("li")[1];
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>已经是最后一个节点");
}
把每段为什么这样写的目的弄清楚了就OK了
举报