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

对例题中get_nextSibling(n)函数有点不解

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

当x.nodeType不为1时,说明x也就是n的下一节点不是空节点,这个时候直接返回x不就行了,为什么还要使x=x.nextSibling?我想是不是应该把while里的条件改成x.nodeType==1?

谢谢

提问者:Neversrd 2016-02-06 18:08

个回答

  • hcl哦了
    2016-02-26 16:55:54

         开始我也想不明白,然后我问的我哥,原话给你:
    你是不是虾?没看见前面有个var x=n.nextSibling;,这说明是什么~~说明x不是li了,而变成了空白格#text。。空白格.nodeType当然不等于1了!你的幼儿园老师虽然是我,但是我还没死呀!!!然后执行空白格.nextSibling,当然就是在空白格的基础上,跳到了下一个li。       

    多一个人一起承受总是舒服点~~~   

  • 执念bxf
    2016-02-06 21:49:35

    x = x.nextSibling是找id为b的节点,get_nextSibling()函数的功能:返回id为a的节点的下一个节点