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

jQuery的遍历同胞结构设计函数为什么是elem.nodeType !== 1呢?谢谢各位!

谢谢各位!jQuery的遍历同胞结构设计函数为什么是elem.nodeType !== 1而不是elem.nodeType !== 9(祖先遍历结构设计是判断nodeTyp是否为9)

function sibling(cur, dir) {

  while ((cur = cur[dir]) && cur.nodeType !== 1) {}

  return cur;

}


正在回答

4 回答

找到当前cur第一个nodeType为1的兄弟节点(因为 li 和 li 之间其实有空白的文本节点,查找兄弟节点时会找到这些文本节点,但并不是我们想要的,文本节点的nodeType为3,满足nodeType !== 1 这个条件,再次进入循环,直到找到我们要的节点为止)

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

这样写匹配到第一个后就跳出循环,直接return。难不成你还想继续while下去?

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

我竟然也纠集了好久,就是找到nodeType==1的元素、!==一直堪称==

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

祖先遍历是一直向上查找,知道找到nodeType==9,也就是根节点document。而同胞遍历的是兄弟节点,判断的是html元素(大写的HTML标签),nodeType==1。

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

linhaa

那为什么是判断!==而不是==呢,不是要判断他的兄弟节点nodetype==1吗? 还是因为nodeType的类型不是数字1? 谢谢解答
2016-05-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

jQuery的遍历同胞结构设计函数为什么是elem.nodeType !== 1呢?谢谢各位!

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