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

我想问一下这个x为什么会是下一个而不是下两个呢?


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

  x在while之前不是已经赋予了n的下一个节点吗,他再赋值一次,不就是n的后两个节点的吗??

正在回答

3 回答

它的while 循环时为了判断x获得的是不是元素,如果获得的下一个也为元素则符合条件,不做此循环,直接return x; 在循环while (x && x.nodeType!=1)中,x本身为真,x.nodeType返回的是1则表明它为一个元素。所以while循环保证了能得到的是一个元素而不是其它的东西,若取得的不是元素则可利用while取下一个元素,直至跳出while

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

var x=n.nextSibling;代表的就是下一个,下一句while (x && x.nodeType!=1)表示x节点不是元素时再运行一次 x=x.nextSibling;如果是元素这句不运行

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

造物主学徒

function get_nextSibling(n){ var x=n.nextSibling; while (x && x.nodeType!=1){ return x; ​ ​} } 那这样写也行吗
2018-08-08 回复 有任何疑惑可以回复我~
#2

qq_mediocre_1 回复 造物主学徒

你这样写如果x是空白元素,还是直接返回x,while并没有用
2018-11-14 回复 有任何疑惑可以回复我~

空格是不是也算

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

举报

0/150
提交
取消

我想问一下这个x为什么会是下一个而不是下两个呢?

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