前端提高篇(八十九):jQuery的DOM的遍历操作(二)

  • 2
  • 3
  • span
  • 4
  • 5
  • span2

    效果:

    在这里插入图片描述

    1.4 offsetParent():寻找最近的有定位的父级

    不能传参,如果父级都没有设置定位,就找html

    给div.test设置定位

    .test {

    position: relative;

    }

    在这里插入图片描述

    在div.test的子元素div.item,寻找最近的设置定位的父元素

    console.log( $(‘.item’).offsetParent() );

    在这里插入图片描述

    如果我都不设置定位,找到的就是html标签:

    在这里插入图片描述

    总结:

    在这里插入图片描述

    2. children / find / end / add / addBack


    html文件用的也是最开始那个

    • 1
    • 2
    • 3
    • span

    • 4
    • 5
    • span2

      2.1 children() 查找子元素(不是所有后代,只找直接的)

      console.log( $(‘ul’).children() );//查找ul下的子元素

      效果:

      在这里插入图片描述

      可以传css选择器:

      console.log( $(‘ul’).children(‘.test’) );//查找ul子元素,且类名为test

      效果:

      在这里插入图片描述

      2.2 find() 查找后代元素

      console.log( $(‘ul’).find(‘span’) );

      在这里插入图片描述

      2.3 end() :回退,prevObject的封装

      在前面调用find(),返回的jQuery对象中,有记录了父级的信息,存储在prevObject中

      在这里插入图片描述

      所以,我们可以通过调用prevObject属性,返回上一级,做一些操作

      console.log($(‘ul’).find(‘li:eq(3)’));

      $(‘ul’).find(‘li:eq(3)’).css(‘background’, ‘red’).prevObject.find(‘li:eq(2)’).css(‘background’, ‘pink’);

      $('ul').find('li:eq(3)')找到ul下索引为3的li,调用css()将背景颜色设置成红色,返回jQuery对象$('li:eq(3)')

      '$('li:eq(3)').prevObject'回退一步,是$('ul')

      继续find('li:eq(2)')找到ul下索引为2的li,调用css()将背景颜色设置成粉色

      在这里插入图片描述

      在jQuery中,end()封装了这一功能

      $(‘ul’).find(‘li:eq(3)’).css(‘background’, ‘red’).end().find(‘li:eq(2)’).css(‘background’, ‘pink’);

      效果一致

      回退到上一级具体是哪一级,是跟find对应的,如果find查找的不是直接子元素,prevObject对应的也不是直接父元素

      console.log( $(‘ul’).find(‘span’) );//span不是ul的直接子元素,prevObject回去的是ul

      在这里插入图片描述

      2.4 add() :把元素添加到已存在的元素组合中

      参数可以是css选择器(selector)、原生dom、jQuery对象、html标签

      如果我们想要给第一个和最后一个li加背景颜色,可能要写两行

      $(‘li:first’).css(‘background’, ‘orange’);

      $(‘li:last’).css(‘background’, ‘orange’);

      都是给背景换橙色,分两行写不够简练,于是,用add():

      $(‘li:first’).add(‘li:last’).css(‘background’, ‘orange’);

      效果一致:

      在这里插入图片描述

      2.5 addBack():使用链式操作时调用,可以同时获取当前对象和前面获取的对象

      • 1
      • 2
      • 3
      • 4
      • 5
      • span2

        $(‘li:eq(1)’).css(‘background’,‘pink’).nextAll().css(‘background’,‘blue’).addBack().css(‘color’, ‘white’)

        最后

        开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

        li>1

      • 2
      • 3
      • 4
      • 5
      • span2

        $(‘li:eq(1)’).css(‘background’,‘pink’).nextAll().css(‘background’,‘blue’).addBack().css(‘color’, ‘white’)

        最后

        开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值