为啥要加&&
为什么是while(x&&x.nodeType!=1)?
这里的意思是x!=1且x.nodeTpye!=1吗?
可是x不是一个对象吗,为什么是!=1?
有点懵。
为什么是while(x&&x.nodeType!=1)?
这里的意思是x!=1且x.nodeTpye!=1吗?
可是x不是一个对象吗,为什么是!=1?
有点懵。
2020-08-08
我的理解是这样的
我是这样理解的
首先childNodes属性在chrome,firefox等浏览器会把文本节点也算在内,nodeType = 1 判断是否是元素节点,;
previousSibling上面没有子节点的时候返回null 所以当x = null 就表示上面已经没有子节点了
while(x && x.nodeType != 1) &&操作符如果有一个是null,则返回null
判断nodeType != 1 且 x !=null 当为True的时候进入循环, 为False就是 =1就不执行循环
null在条件中会自动转换为false就不会继续循环了直接把 x = null return了出去 这时 x = null;
如果没有(x && x.nodeType != 1)&&操作符前面的 x 的话 null没有属性且不可读 当x=null时
获取null.nodeType就会报错
最后在这里进行判断,希望能够帮到你!(*^▽^*)
if(y!=null){
document.write("<br />previousSibling: ");
document.write(y.nodeName);
document.write(" = ");
document.write(y.innerHTML);
}else{
document.write("<br>已经是最后一个节点");
}
举报