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

不太懂两次赋值

这样不是变成x的下两个节点了?

function get_nextSibling(n){

        var x=n.nextSibling;

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

            x=x.nextSibling;

        }

        return x;

    }

问题如题。。


正在回答

3 回答

<script type="text/javascript">

    function get_nextSibling(n){

    document.write("n的值为:"+n.value);

        var x=n.nextSibling;

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

            x=x.nextSibling;

        }

        return x;

    }


    var x=document.getElementsByTagName("li")[0];

    document.write("x的值为:"+x.value+"<br/>"+x.nodeValue+"<br/>"+x.nodeName+"<br/>"+x.nodeType+"<br/>");

y=get_nextSibling(x);

</script>


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

qq_混沌肆虐_0 提问者

非常感谢!
2015-11-06 回复 有任何疑惑可以回复我~
#2

慕斯卡9402741

请问x.value为什么是0?
2016-01-15 回复 有任何疑惑可以回复我~

我的看法应该是兼容性问题吧,因为在谷歌和火狐下,空白的地方也算是一个节点,ie下空白则不会算是个节点,可以alert一下节点的个数看下

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

我是这么理解不知道对不对,你可以参考下:

function get_nextSibling(n){

        var x=n.nextSibling;   //这条语句是当下面的while循环不成立时返回的给return的值。

        while (x && x.nodeType!=1){     //当循环while成立时,即两个条件满足(while 会循环到返回的nodeType=1才会停止,并给x赋停止前得到的值)

            x=x.nextSibling;    //给x重新赋值(新值会覆盖旧值),给return返回这个新的值。

        }           

        return x;  //所以这里返回的x的值取决于while循环是否成立;

    }


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

举报

0/150
提交
取消

不太懂两次赋值

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