function get_nextSibling(n){ var x=n.nextSibling; while (x.nodeType&&x!=1){ x=x.nextSibling; } return x; }这个句子中x&&x.nodeType!=1是判断节点是否为空 但是把句子中x.nodeType&&x!=1 这样交换下位置这个判断句子就不行了 求大神指点迷津!
1 回答
![?](http://img1.sycdn.imooc.com/557e54c10001c62c02750275-100-100.jpg)
Perona
TA贡献355条经验 获得超403个赞
首先了解一下,
操作符之间的优先级(高到低):
算术操作符 → 比较操作符 → 逻辑操作符 → "="赋值符号
x&&x.nodeType!=1 最后执行的是逻辑操作符&&(与)。而不是比较操作符!=(不等于)。
这行代码不止判断是否存在x并且判断x节点类型不等于元素节点。
如果节点是元素节点,则 nodeType 属性将返回 1。
x.nodeType!=1就是判断节点不是元素节点。
所以x&&x.nodeType!=1要交换位置,代码应该是:
x.nodeType!=1&&x
添加回答
举报
0/150
提交
取消