三、jQuery 中的 DOM 操作(超详细),2024年最新斗鱼前端面试题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

  • `.after() 在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点。

  • .before() 根据参数设定,在匹配元素的前面插入内容。

  • .insertAfter() 在目标元素后面插入集合中每个匹配的元素(注:插入的元素作为目标元素的兄弟元素)。

  • .insertBefore() 在目标元素前面插入集合中每个匹配的元素(注:插入的元素作为目标元素的兄弟元素)。

注:这些插入节点的方法不仅能将新创建的 DOM 元素插入到文档中,也能对原有的 DOM 元素进行移动。

插入节点示例:将新建的 li 元素插入到 ul 中

    • blue
    • white
    • red
    • 运行效果为:

      请添加图片描述

      移动节点示例:

      • blue
      • white
      • red
      • I like

        运行效果为:

        请添加图片描述

        想要查看更多关于插入节点的实例,可以访问 jQuery 中文官网 DOM 插入现有元素内jQuery 中文官网 DOM 插入现有元素外

        五、删除节点

        =========================================================================

        如果文档中某一个元素多余,那么我们可以使用 jQuery 中的 remove(),detach()empty() 方法删除节点。

        5.1 detach() 方法


        从 DOM 中去掉所有匹配的元素。.detach() 方法和.remove()一样, 除了 .detach() 保存所有 jQuery 数据而且和被移走的元素相关联。当需要移走一个元素,不久又将该元素插入 DOM 时,这种方法很有用。

        例子:

        • blue
        • white
        • red
        • 请添加图片描述

          5.2 empty() 方法


          从 DOM 中移除集合中匹配元素的所有子节点。这个方法不接受任何参数。这个方法不仅移除子元素(和其他后代元素),同样移除元素里的文本。因为,根据说明,元素里任何文本字符串都被看做是该元素的子节点。

          例子:

          • blue
          • white
          • red
          • 请添加图片描述

            注:如果你想删除元素,不破坏他们的数据或事件处理程序(这些绑定的信息还可以在之后被重新添加回来),请使用 .detach()

            5.3 remove() 方法


            将匹配元素集合从 DOM 中删除。(注:同时移除元素上的事件及 jQuery 数据。)和 .empty() 相似。.remove() 将元素移出 DOM。 当我们想将元素自身移除时我们用 .remove(),同时也会移除元素内部的一切,包括绑定的事件及与该元素相关的 jQuery 数据。在要删除元素同时保留数据和事件的情况下,使用.detach()来代替。

            例子:

            • blue
            • white
            • red
            • 请添加图片描述

              从运行效果来看也验证了我们所说的元素用 remove() 方法删除后,还是可以继续使用的。

              另外 remove() 方法也可以通过传递参数来选择性的删除元素。比如:

              • blue
              • white
              • red
              • 想要了解更多关于删除节点的例子,可以访问 jQuery 中文官网 DOM 移除

                六、复制节点

                =========================================================================

                复制节点可以通过 clone() 方法来实现, 当 clone()中传递了参数 true 时,代表复制元素的同时复制其所绑定的元素。

                示例:点击 li 元素即可复制其本身到 ul 中

                • blue
                • white
                • red
                • 运行效果为:请添加图片描述

                  想要了解更多关于复制节点的操作,可以访问 jQuery 中文官网 复制元素

                  七、 替换节点

                  ==========================================================================

                  • .replaceAll() 用集合的匹配元素替换每个目标元素。

                  • .replaceWith() 用提供的内容替换集合中所有匹配的元素并且返回被删除元素的集合。

                  注:.replaceAll().replaceWith() 功能一样,但是目标和源相反。

                  示例:替换 p 元素

                  小丫么小牛马

                  想要了解更多关于替换节点的例子,可以访问 jQuery 中文官网 DOM 替换

                  八、 包裹节点

                  ==========================================================================

                  8.1 、wrap() 方法


                  每个匹配的元素外层包上一个 html 元素。.wrap() 函数可以接受任何字符串或对象,可以传递给 $() 工厂函数来指定一个 DOM 结构。这种结构可以嵌套了好几层深,但应该只包含一个核心的元素。每个匹配的元素都会被这种结构包裹。该方法返回原始的元素集,以便之后使用链式方法

                  例子:

                  用一个有边框的 DIV 将 P 元素包裹起来

                  小丫么小牛马

                  小丫么小牛马

                  运行效果为:

                  请添加图片描述

                  8.2、wrapAll() 方法


                  在所有匹配元素外面包一层 HTML 结构。.wrapAll() 函数可以接受任何字符串或对象,可以传递给 $() 工厂函数来指定一个 DOM 结构。这种结构可以嵌套多层,但是最内层只能有一个元素。所有匹配元素将会被当作是一个整体,在这个整体的外部用指定的 HTML 结构进行包裹。

                  注:该元素会将所有匹配的元素用一个元素来包裹,它不同于 wrap() 方法,wrap() 方法是将所有的元素进行单独的包裹。

                  例子:

                  小丫么小牛马

                  小丫么小牛马

                  运行效果为:

                  请添加图片描述

                  8.3、wrapInner() 方法


                  在匹配元素里的内容外包一层结构。.wrapInner() 函数可以接受任何字符串或对象,可以传递给 $()工厂函数来指定一个 DOM 结构。这种结构可以嵌套多层,但是最内层只能有一个元素。每个匹配元素的内容都会被这种结构包裹。wrapInner() 方法将每一个匹配的元素的子内容(包括文本节点)用其他结构化的标记包裹起来。

                  例子:

                  小丫么小牛马

                  小丫么小牛马

                  运行效果为:

                  请添加图片描述

                  想要了解更多关于包裹节点的实例,可以访问 jQuery 中文官网 DOM 插入并包裹现有内容

                  九、 属性操作

                  ==========================================================================

                  在 jQuery 中, attr() 方法用来获取和设置元素的属性,removeAttr() 方法用来删除元素属性。

                  9.1、获取元素属性


                  如果要获取元素的属性,那么只需要给 attr() 方法传递一个参数,即属性名称。

                  示例:获取 P 元素的 class 属性值,并追加到 div 中

                  小牛马

                  运行效果为:

                  请添加图片描述

                  9.2、设置元素属性


                  如果需要设置元素的属性值,也可以使用 attr() 方法,不同的是,需要传递两个参数即属性名称和对应的值。

                  示例:设置 div 的 class 值

                  小牛马

                  运行效果为:

                  请添加图片描述

                  如果需要一次性为同一个元素设置多个元素,可以使用下面的代码来实现:

                  $(“div”).attr({ class: “demo”, name: “test” }); //将一个 “名/值” 形式的对象设置为匹配元素的属性

                  9.3、删除元素属性


                  removeAttr() 方法来实现删除元素属性。.removeAttr() 方法使用原生的 JavaScript removeAttribute() 函数,但是它的优点是可以直接在一个 jQuery 对象上调用该方法,并且它解决了跨浏览器的属性名不同的问题。

                  示例:删除 div 的 class

                  橘猫烧鲷鱼

                  想要了解更多关于属性操作的例子,可以访问 jQuery 中文官网通用属性操作

                  十、样式操作

                  =========================================================================

                  10.1、获取样式和设置样式


                  HTML 代码:

                  小牛马

                  其中 class 也是 p 标签的属性,因此获取 class 和 设置 class 都可以使用我们前面所说的attr()方法。比如:

                  小牛马

                  请添加图片描述

                  10.2、追加样式


                  .addClass() 方法为每个匹配的元素添加指定的样式类名,值得注意的是这个方法不会替换一个样式类名。它只是简单的添加一个样式类名到元素上。

                  示例:为 div 追加一个新样式 another

                  hello

                  注:凌晨两点了,好累懒得截图了QAQ,反正也没人看。。。

                  注:上例中 div 元素同时拥有两个 class 值,即 “demo” 和 “another” ,在 css 中有以下两条规定:

                  • 如果给一个元素添加了多个 class 值,那么就相当于合并了它们的样式。

                  • 如果有不同的 class 设定了同一样式属性,则后者覆盖前者。

                  10.3、移除样式


                  .removeClass() 方法移除集合中每个匹配元素上一个,多个或全部样式。如果一个样式类名作为一个参数,只有这样式类会被从匹配的元素集合中删除 。如果没有样式名作为参数,那么所有的样式类将被移除。

                  示例:移除 div 的 another 样式

                  hello

                  注:如果要删除多个 class 值,我们可以以空格的方式删除多个 class 名,比如:

                  $(“div”).removeClass(“another demo”); //删除 another 类和 demo 类

                  如果 removeClass() 方法不带参数,就会将 class 的值全部删除,比如:

                  $(“div”).removeClass(); //删除

                  元素的所有class

                  10.4、切换样式


                  .toggleClass() 在匹配的元素集合中的每个元素上添加或删除一个或多个样式类,取决于这个样式类是否存在或值切换属性。即:如果存在(不存在)就删除(添加)一个类。

                  例子:

                  hello

                  切换段落的 “main” 类

                  运行效果:点击button,字变红色。

                  10.5、判断是否含有某个样式


                  .hasClass() 可以用来判断元素中是否含有某个 class,如果有则返回 true,否则返回 false。比如:

                  $(“p”).hasClass(“another”);

                  想要查看更多关于样式操作的实例,可以访问 jQuery 中文官网 class 属性

                  十一、 设置和获取 HTML、文本和值

                  ======================================================================================

                  11.1、


                  .html() 方法

                  .html() 获取集合中第一个匹配元素的 HTML 内容 或 设置每一个匹配元素的 html 内容。类似于我们原生 JavaScript 中的 innerHTML 属性。

                  示例:获取 div 中的 HTML 内容

                  hello

                  示例:设置 div 中的 HTML 内容

                  11.2、.text() 方法


                  .text() 得到匹配元素集合中每个元素的文本内容结合,包括他们的后代,或设置匹配元素集合中每个元素的文本内容为指定的文本内容。类似于 JavaScript 中的 innerText 属性。

                  示例:获取 div 元素的文本内容

                  hello

                  示例:设置 div 中的文本内容

                  hello

                  11.3、val() 方法


                  .val() 获取匹配的元素集合中第一个元素的当前值或设置匹配的元素集合中每个元素的值。类似于 JavaScript 中的 value 属性。.val() 方法主要用于获取表单元素的值,比如 input, select 和 textarea。对于 <select multiple="multiple"> 元素, .val() 方法返回一个包含每个选择项的数组,如果没有选择性被选中,它返回 null。

                  示例:设置输入框的值

                  Vue 面试题

                  1.Vue 双向绑定原理
                  2.描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?
                  3.你是如何理解 Vue 的响应式系统的?
                  4.虚拟 DOM 实现原理
                  5.既然 Vue 通过数据劫持可以精准探测数据变化,为什么还需要虚拟 DOM 进行 diff 检测差异?
                  6.Vue 中 key 值的作用?
                  7.Vue 的生命周期
                  8.Vue 组件间通信有哪些方式?
                  9.watch、methods 和 computed 的区别?
                  10.vue 中怎么重置 data?
                  11.组件中写 name 选项有什么作用?
                  12.vue-router 有哪些钩子函数?
                  13.route 和 router 的区别是什么?
                  14.说一下 Vue 和 React 的认识,做一个简单的对比
                  15.Vue 的 nextTick 的原理是什么?
                  16.Vuex 有哪几种属性?
                  17.vue 首屏加载优化
                  18.Vue 3.0 有没有过了解?
                  19.vue-cli 替我们做了哪些工作?

                  算法

                  1. 冒泡排序
                  2. 选择排序
                  3. 快速排序
                  4. 二叉树查找: 最大值、最小值、固定值
                  5. 二叉树遍历
                  6. 二叉树的最大深度
                  7. 给予链表中的任一节点,把它删除掉
                  8. 链表倒叙
                  9. 如何判断一个单链表有环
                  10. 给定一个有序数组,找出两个数相加为一个目标数

                  由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+评论666

                  网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

                  需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
                  img

                  一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
                  libs/jquery/2.1.4/jquery.min.js">

                  hello

                  11.3、val() 方法


                  .val() 获取匹配的元素集合中第一个元素的当前值或设置匹配的元素集合中每个元素的值。类似于 JavaScript 中的 value 属性。.val() 方法主要用于获取表单元素的值,比如 input, select 和 textarea。对于 <select multiple="multiple"> 元素, .val() 方法返回一个包含每个选择项的数组,如果没有选择性被选中,它返回 null。

                  示例:设置输入框的值

                  Vue 面试题

                  1.Vue 双向绑定原理
                  2.描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?
                  3.你是如何理解 Vue 的响应式系统的?
                  4.虚拟 DOM 实现原理
                  5.既然 Vue 通过数据劫持可以精准探测数据变化,为什么还需要虚拟 DOM 进行 diff 检测差异?
                  6.Vue 中 key 值的作用?
                  7.Vue 的生命周期
                  8.Vue 组件间通信有哪些方式?
                  9.watch、methods 和 computed 的区别?
                  10.vue 中怎么重置 data?
                  11.组件中写 name 选项有什么作用?
                  12.vue-router 有哪些钩子函数?
                  13.route 和 router 的区别是什么?
                  14.说一下 Vue 和 React 的认识,做一个简单的对比
                  15.Vue 的 nextTick 的原理是什么?
                  16.Vuex 有哪几种属性?
                  17.vue 首屏加载优化
                  18.Vue 3.0 有没有过了解?
                  19.vue-cli 替我们做了哪些工作?

                  [外链图片转存中…(img-Hoi6nhIU-1713444177819)]

                  算法

                  1. 冒泡排序
                  2. 选择排序
                  3. 快速排序
                  4. 二叉树查找: 最大值、最小值、固定值
                  5. 二叉树遍历
                  6. 二叉树的最大深度
                  7. 给予链表中的任一节点,把它删除掉
                  8. 链表倒叙
                  9. 如何判断一个单链表有环
                  10. 给定一个有序数组,找出两个数相加为一个目标数

                    [外链图片转存中…(img-V5saCtie-1713444177820)]

                  由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+评论666

                  网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

                  需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
                  [外链图片转存中…(img-DEPicOHH-1713444177820)]

                  一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

                • 11
                  点赞
                • 24
                  收藏
                  觉得还不错? 一键收藏
                • 0
                  评论

                “相关推荐”对你有帮助么?

                • 非常没帮助
                • 没帮助
                • 一般
                • 有帮助
                • 非常有帮助
                提交
                评论
                添加红包

                请填写红包祝福语或标题

                红包个数最小为10个

                红包金额最低5元

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

                抵扣说明:

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

                余额充值