问答详情
源自:1-5 遍历同胞(下)

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;

}


提问者:Devisn 2015-08-30 11:38

个回答

  • 戴琪琪
    2018-12-07 10:55:27

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

  • 华子_0003
    2016-09-17 23:24:28

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

  • 旧约丿巴黎埃菲尔情
    2016-06-07 23:09:52

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

  • 王不二
    2015-12-02 15:46:58

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