上面注意事项中$( "html" ).parents()返回一个空集合,不是应该会返回document吗,难道它的父元素不属于它的祖辈范围之内?

来源:6-4 jQuery遍历之parents()方法

ljxyaly

2017-09-29 23:28

上面注意事项中$( "html" ).parents()返回一个空集合,不是应该会返回document吗,难道它的父元素不属于它的祖辈范围之内?

写回答 关注

6回答

  • 慕莱坞9527
    2017-10-20 16:15:21
    已采纳

    记住就好了,又不常用

    共 1 条回复 >

  • 慕移动9181930
    2022-03-25 17:45:18

    你可以简单地认为API=接口。接口文件,是接口的重要组成部分。

  • 慕无忌1343731
    2019-07-11 15:11:37

    JQ源码:

    里面有这么一段:这是parents()的

    if ( cur.nodeType === 1 ) {     //主要看这一句,当父级对象的nodeType为1时;

    matched.push( cur );           //将这个父级对象插入matched数组;matched数组初始状态是空;

    }

    cur = cur[dir];          

    }

    return matched;                //返回这个数组


    所以$("html")的父级是document,document的nodeType是9,因此不会被放入数组;

    然而parent()方法就没有这个判断,

    parent: function( elem ) {

            var parent = elem.parentNode;

            return parent && parent.nodeType !== 11 ? parent : null;  //当父元素nodeType不为11时,直接返回

        },


  • weixin_慕勒2266735
    2019-02-22 18:16:01

    $( "html" ).parent()能够反馈document那么

    $( "html" ).parents()至少应该能反馈一个document

    这里费解!

    另外打印$('.item-b').parents().css('border', '2px solid red')出来一共有7个元素,不包括document


  • 慕莱坞9527
    2017-10-23 14:12:43

    alert('谢谢采纳')

  • 慕粉1465824802
    2017-10-01 22:08:11

    我的理解是:$("html").parents()取得的是当前元素的祖先元素(但不包括根元素),在HTML中根元素(祖先元素)就是html,而在html上面已经没有父元素了,所以返回空集合

    返回document的是parent(),因为parent()返回当前元素的父元素,最终取到根元素html,每个html文档都会成为 document对象,所以返回document集合

jQuery基础(二)—DOM篇

jQuery第二阶段开启DOM修炼,了解创建、插入、删除与替换

114008 学习 · 590 问题

查看课程

相似问题