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

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

慕粉0943041209

2017-04-23 22:32

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

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

写回答 关注

3回答

  • 慕粉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"。

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

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题