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

为啥要加&&

为什么是while(x&&x.nodeType!=1)?

这里的意思是x!=1且x.nodeTpye!=1吗?

可是x不是一个对象吗,为什么是!=1?

有点懵。

正在回答

1 回答

我的理解是这样的

我是这样理解的

首先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>已经是最后一个节点");      

    }


3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为啥要加&&

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