问答详情
源自:9-11 访问兄弟节点

<li id="a">javascript</li> 和 <li id="b">jquery</li>之间不是有一个空白节点吗?为什么显示的答案是LI = jquery ?

 两个节点中间的空白节点难道不是第一给节点的下一个节点吗?

提问者:Super丶shark 2015-09-18 04:23

个回答

  • pardon110
    2015-09-18 08:17:48
    已采纳

    空白节点的确是第一个节点的下一个节点,但请读懂得课程中下面这段代码.

    x.nodeType!=1 ,限定了当下一个节点为非元素节点(元素节点nodeType值为1)时,会找到它紧跟的下一个元素节点并返回。而空白节点实质属于文本节点,其nodeType值为3.

    总之使用了get_nextSibling,在获取下一个节点时,当下一个节点为非元素节点时,会直接获取它最近的下一个元素节点。

     function get_nextSibling(n){
            var x=n.nextSibling;
            while (x && x.nodeType!=1){
                x=x.nextSibling;
            }
            return x;
        }


  • Y习惯你管
    2015-09-18 16:05:53

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

                x=x.nextSibling;

            }

    这段代码就是验证浏览器是否把空白地方当作节点了。 如果不等于1,那就是算上空白了。等于1就把空白忽略了。