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

x && x.nodeType!=1 这个不能理解

首先声明了   var x = document.gentELmensByTagName("li")[0] ;

那当调用var y=get_nextSibling(x) 函数后,那该函数里的  x 其实就表示 <li id="b">jquery</li>  这个LI元素节点 ,那v.nodeType不是就该为1吗?   不理解啊,求帮忙解答!!

正在回答

1 回答

参数中传过去的是LI节点,在函数中一开始就获取了它的nextSibling,因为其他浏览器中不会忽略空白生成的文本节点,那个type=3,所以while循环中要找到第一个不是x.nodeType!=1的啊。而且要判断x是不是null.

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

小飞猪来了 提问者

非常感谢!
2015-01-16 回复 有任何疑惑可以回复我~
#2

xuyaomvp

x什么情况下是null,什么情况下不是呢?
2015-01-26 回复 有任何疑惑可以回复我~
#3

SiRain

那ie忽略那个空白文本。type变成1那么while循环中要找到第一个就是x.nodeType!=1了吧?怎么解释
2015-01-29 回复 有任何疑惑可以回复我~
#4

Fiona0126 回复 xuyaomvp

你可以试试一开始就写一个节点,按它的算法,第一次x所得到的值就是null。因为他没有兄弟节点了。
2015-01-29 回复 有任何疑惑可以回复我~
#5

Fiona0126 回复 SiRain

ie忽略了不就更好吗。只要找到type=1的就退出来了啊。这不就是第一个兄弟节点吗。。它的只为了处理掉其他浏览器无法忽略的文本节点,即就算找到文本节点也再向下面找。直到找到第一个元素节点喽。。
2015-01-29 回复 有任何疑惑可以回复我~
#6

caixiangqi

请问找到第一个不是x.nodeType!=1的x之后,是如何判断x的逻辑真假的??用哪种属性? 还有左侧教程中为什么不用 &&x?
2015-03-20 回复 有任何疑惑可以回复我~
查看3条回复

举报

0/150
提交
取消

x && x.nodeType!=1 这个不能理解

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