不太懂两次赋值

来源:9-11 访问兄弟节点

qq_混沌肆虐_0

2015-11-02 17:17

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

function get_nextSibling(n){

        var x=n.nextSibling;

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

            x=x.nextSibling;

        }

        return x;

    }

问题如题。。


写回答 关注

3回答

  • DeepNet
    2015-11-03 22:29:13
    已采纳

    <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>


    慕斯卡940...

    请问x.value为什么是0?

    2016-01-15 12:05:00

    共 2 条回复 >

  • 十nian
    2015-11-09 23:35:57

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

  • 三国之编程
    2015-11-03 01:53:47

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

    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循环是否成立;

        }


JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题