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

看不懂这个x&&起到的作用,求解啊?

这个x&&x.nodeType!=1是什么意思呢??前面这个x&&   function get_nextSibling(n){        var x=n.nextSibling;        while (x && x.nodeType!=1){            x=x.nextSibling;        }        return x;    }

正在回答

4 回答

他这里是判断 var x=n.nextSibling;这句话中的x是否存在,如果存在再判断后面是否是元素节点,如果x不存在,就不会继续执行后面的代码,提升效率。

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

在这里它考虑了两种情况:

1、前面确实有元素节点,那么直接返回x;   var x= n.nextSibling; return  x;

2、前面有节点(x),并且,它不是元素节点(x.nodeType!=1);


while(x && x.nodeType!=1){

x = x.nextSibling;    (既然他不是元素节点,那么我们就再以这个非元素节点为目标,再向下找)

}


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

CharlesLvm

你说的有问题,并不是有元素节点他就直接返回。
2016-07-18 回复 有任何疑惑可以回复我~
#2

TCandice 回复 CharlesLvm

兄弟元素,我这里表示的
2016-07-18 回复 有任何疑惑可以回复我~

&& 是逻辑与运算,它两边的表达式计算结果都为true时,最终的返回值才为true. ||为逻辑或运算,即它两边的表达式中任何一个为true时,最终返回值为true。举个例子:var test=true&&false, test的值为false; var test=true||false, test的值为true. 你问题中的表达式是在判断:x存在,并且x 的类型不为Element(Nodetype:1)

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

&&表示并且,左右两边要同时成立,左边的x是一个布尔表达式,当x不等于0时成立,while(x)意思是当x存在时。整个的含义时当x存在,并且x的节点类型不是元素时,将x的先一个兄弟节点赋值给x

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

举报

0/150
提交
取消

看不懂这个x&&起到的作用,求解啊?

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