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

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’)

        将索引1的li背景颜色设置成粉色;

        索引1的li后面的标签背景颜色都设置成蓝色

        addBack,将当前选中的标签和前面一组选中的标签中的字体颜色改成白色,索引1的li后面的标签和索引1的li字体颜色变成白色

        效果:

        在这里插入图片描述

        addBack影响的只是当前这一组对象和链式操作前一组的对象:

        如果A连接B连接C,C对象调用了addBack(),只有BC被影响,A没有在addBack范围内

        $(‘li:eq(1)’).css(‘background’,‘pink’)

        .next().css(‘background’,‘yellow’)

        .next().css(‘background’,‘orange’)

        .addBack().css(‘color’, ‘white’)

        索引1的li设置背景粉色

        最后

        自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

        深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

        因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

        img

        既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

        如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

        由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
        715887960844)]

        [外链图片转存中…(img-8Vxp30io-1715887960845)]

        [外链图片转存中…(img-id7vvWcJ-1715887960845)]

        既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

        如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

        由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

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

      抵扣说明:

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

      余额充值