不懂x.nodeType!=1

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

qq_梦里_0

2016-07-25 10:47

x.nodeType!=1不就是说x不是元素节点了吗?x.nodeType==1才是元素节点啊?那为什么while里面的(x.nodeType!=1)就把x的下一个节点赋给x。既然x不是元素节点了,那应该直接输出,当满足x.nodeType=1的时候才应该x=x.nextSibling

写回答 关注

6回答

  • qq_慕婉清1586649
    2020-05-21 20:11:33

    nodeType值=1,代表是元素节点,目标就是元素节点

    while (x && x.nodeType!=1) 这里面,有两个条件,一个是(x),表示为真。另一个条件是x.nodeType != 1,表示

    当nodeType不为1,也就是当不是元素节点时,x=x.nextSibling; 要再跳到下一个,兄弟节点。当然,这个兄弟节点,也有可能不为1,那么,再跳下个。直到nodeType==1时。。。。

  • qq_kk_77
    2018-05-29 14:28:54

    我也不懂为什么  要这样写这句判断

  • qq_kk_77
    2018-05-29 14:27:53
    hgfhfu092090-


  • DOFOR
    2017-08-07 18:39:02

    我跟你一样的疑惑,你弄懂了吗?

  • Yuuyu
    2016-08-08 15:54:08

    “x不是元素节点了,那应该直接输出“。这句话什么意思啊 ,x不是元素节点的不是应该继续找吗 因为要找的是元素节点啊

  • 水里有条鱼
    2016-07-25 11:07:37

    function get_nextSibling(n){  //返回下一个元素节点     

    var x=n.nextSibling; //定义X为下一个节点

    while (x && x.nodeType!=1){   //不是元素节点及节点不为空就继续寻找下一个,是元素节点就跳出循环

    x=x.nextSibling;       

    }

    return x; //返回节点

    假如节点信息(nodeType)如下 : 1 3 1 3 1 3

    假如现在是第一个1,找下一个1,那么X初值nodeType为3的节点,满足循环条件继续执行,X变为 nodeType为1的节点,不满足循环条件,跳出循环,返回节点(得到元素节点)。


    慕前端184... 回复水里有条鱼

    原来如此!十分感谢!

    2016-08-08 12:59:58

    共 3 条回复 >

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题