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

为什么要连续操作两次nextSibling

我看示例代码,开始x = n.nextSibling;后来在while循环里 x=x.nextSibling又来一次,这样的话不是变成n的下一个的下一个了吗

正在回答

2 回答

function get_nextSibling(n){
        var x=n.nextSibling;
        while (x && x.nodeType!=1){//当x存在且x不是元素节点时,会执行下面的循环语句
            x=x.nextSibling;//满足上述条件,则继续查找下一个节点,直至找到nodeType值为1的元素节点,则继续执行函数,return x
        }
        return x;
    }

答案我写成标注了

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

var x=n.nextSibling;

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

            x=x.nextSibling;

        }

        return x;

是这里的是吧  while这里的第二个是只有在第一个nextSibling的节点不符合条件(要求为兄弟节点 比如说是#text就不是本例中的li的兄弟节点)不符合的时候才执行while里即第二个nextSibling  符合要求的话 会直接到return x


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

举报

0/150
提交
取消

为什么要连续操作两次nextSibling

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