是元素节点,且不是当前选择器元素

来源:1-6 遍历后代

慕粉18201507520

2016-12-07 14:20

第48行的疑问: if (n.nodeType === 1 && n !== elem) { //是元素节点,且不是当前选择器元素 


这里是遍历所有子节点,且开始选取的是ul.firstchild,应该不需要再过过滤自己了吧?有点困惑 n!==elem什么意思?

children()函数,取的是level2的所有子元素吗?

写回答 关注

2回答

  • qxw5267
    2016-12-08 18:01:31
    已采纳

    sibling() 方法,不包括本身  排除这种情况

    慕粉1820...

    非常感谢!

    2016-12-21 21:51:18

    共 1 条回复 >

  • 冥oo冥
    2016-12-19 16:04:51

    用childNodes然后遍历,和用ul.firstChild然后遍历下一个兄弟节点一样的吧

    作者上例sibling的目的是遍历兄弟节点吧,类似siblings

    如果直接实现,是不是用原生的childNodes直接得到数组比较好,而非自己建立数组一个一个插入再返回数组

    var ul = document.querySelectorAll('.level-2')[0];

    $.each(ul.childNodes, function(i, ele) {

        if (ele.nodeType === 1 ) {

            $('div').append('xx')

        }

      })


    慕粉1820...

    xiexie

    2016-12-21 21:57:54

    共 1 条回复 >

jQuery源码解析(DOM与核心模块)

由浅入深的剖析jQuery库的设计与实现,揭开框架背后的秘密

71439 学习 · 82 问题

查看课程

相似问题