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

<li id="a">javascript</li> 和 <li id="b">jquery</li>之间不是有一个空白节点吗?为什么显示的答案是LI = jquery ?

 两个节点中间的空白节点难道不是第一给节点的下一个节点吗?

正在回答

2 回答

空白节点的确是第一个节点的下一个节点,但请读懂得课程中下面这段代码.

x.nodeType!=1 ,限定了当下一个节点为非元素节点(元素节点nodeType值为1)时,会找到它紧跟的下一个元素节点并返回。而空白节点实质属于文本节点,其nodeType值为3.

总之使用了get_nextSibling,在获取下一个节点时,当下一个节点为非元素节点时,会直接获取它最近的下一个元素节点。

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


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

StevenPenn

这个函数是不是只能选出下一个元素节点?而文本节点属性节点都要另写函数?
2015-09-22 回复 有任何疑惑可以回复我~
#2

Super丶shark 提问者

非常感谢!
2015-09-30 回复 有任何疑惑可以回复我~

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

            x=x.nextSibling;

        }

这段代码就是验证浏览器是否把空白地方当作节点了。 如果不等于1,那就是算上空白了。等于1就把空白忽略了。

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

举报

0/150
提交
取消

<li id="a">javascript</li> 和 <li id="b">jquery</li>之间不是有一个空白节点吗?为什么显示的答案是LI = jquery ?

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