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

为什么条件里面写的是nodeType!=1,麻烦说明下元素节点、属性节点和文本节点的区别~

 function get_nextSibling(n){
        var x=n.nextSibling;
        while (x && x.nodeType!=1){
            x=x.nextSibling;
        }
        return x;
    }

问题:

  1. 这句话没看太懂,为什么条件里面写的是nodeType!=1         

  2. 什么是元素节点?  能分别说明下元素节点、属性节点和文本节点的区别吗?

谢谢各位大神了!!!!!

正在回答

4 回答

 !=1表示不是元素节点,所以才有 x=x.nextSibling; 就是跳过他的意思。否则直接执行x=n.nextSibling;

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

慕姐1632040

谢谢点拨,是这个意思
2016-06-13 回复 有任何疑惑可以回复我~

就是为了跳过空格,li标签之间只要回车的话就会产生一个文本节点

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

usexiaodu

跳过空格。空格不是文本文档吗? 为什么要 !=1 不是应该 !=3 吗? 文本节点的值应该是3啊
2015-11-30 回复 有任何疑惑可以回复我~
#2

太阳1993双子 回复 usexiaodu

!=1的时候就跳过去,最终找到等于1的那个,也就是元素节点。如果按你说的!=3就排除的话,最终找到文本节点。找元素节点用!=1来一个个排除
2015-12-28 回复 有任何疑惑可以回复我~

<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 回复 有任何疑惑可以回复我~

首先,nodeType是用来获得当前节点对象的类型。
nodeType 属性可返回节点的类型。
元素element   1  
属性attr   2  
文本text   3  
注释comments   8  
文档document   9  

所以nodeType!=1就是说该结点不是元素节点

其次,

元素节点:构成了DOM的基础。文档结构中,<html>是根元素,代表整个文档,其他的还有<head>,<body>,<p>,<span>等等。元素节点之间可以相互包含(当然遵循一定的规则)

文本节点:包含在元素节点中。

属性节点:元素都可以包含一些属性,属性的作用是对元素做出更具体的描述,比如id,name之类的。

http://www.tuicool.com/articles/zANnye

这篇文章里写得很清楚~~~

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

举报

0/150
提交
取消

为什么条件里面写的是nodeType!=1,麻烦说明下元素节点、属性节点和文本节点的区别~

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