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

为啥要写两次previousSibling才会输出上一个节点?

var y=x.previousSibling.previousSibling; document.write(y.nodeName+"
"+y.innerHTML); 

为啥要写两次previousSibling才会输出上一个?

提问者:慕粉0943041209 2017-04-23 22:32

个回答

  • 慕粉0943041209
    2017-04-24 09:01:10

    我懂了,赋值y的时候没调用函数  好尴尬~

  • 慕粉0943041209
    2017-04-24 08:51:40

    function get_previousSibling(n){

        var x=n.previousSibling;

        while(x.nodeType!=1){

            x=x.previousSibling;

        }

        return x;

    }


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

    document.write(x.nodeName+"<br />"+x.innerHTML+"<br .>");

    var y=x.previousSibling.previousSibling;

    document.write(y.nodeName+"<br />"+y.innerHTML);

    上面的函数应该就过滤掉空白符了吧

  • 奇谈0
    2017-04-24 00:21:54

    元素内的空白字符被视作文本,而文本被视作节点。

    请在两个 <li> 元素之间添加空格,结果将是 "undefined"。

    删除文本中的的空白符看看。。