关于while (x && x.nodeType!=1)如果它的兄弟节点刚好是文本节点怎么办?

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

小狮子_小棍儿

2015-01-08 16:30

如果它的节点刚好不是元素怎么办?例如刚好是文本节点呢?

写回答 关注

2回答

  • 傻臭sunny
    2016-05-20 12:40:52

    假设我们的nextSibling 节点是whitespace,那么该节点的nodeType 不等于 1(因为他是文本节点,他的类型应该是3),所以他会进入while循环。而while循环内的语句是:“x=x.nextSibling;”,这是什么意思呢?意思是我的nextSibling节点不是元素节点(是一个文本节点),我不想要这个文本节点,所以我要再继续找下一个兄弟节点。当下一个节点是元素节点时,那么此时他就不符合while循环里的条件了,所以此时就会之间执行return x;,这个x就是我们需要的身为元素节点的兄弟节点了(有点儿绕口呵呵)。

  • 康振宁
    2015-01-08 17:02:13

    这个不已经判断了吗,x.nodeType!=1这个就是排除文本节点的

    内涵Naru... 回复小狮子_小棍...

    当节点不是元素节点时执行循环语句(将下个节点赋值给它),也就是说通过这个语句把文本节点跳过了

    2015-01-13 13:38:12

    共 2 条回复 >

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题