前端提高篇(九十三):jQueryDOM操作:删除、包裹

本文详细介绍了JavaScript中DOM操作的方法,包括empty()、html()、text()用于清除元素内容,remove()和detach()删除元素及其关联数据和事件的区别,以及clone()的克隆功能。同时探讨了wrap(),wrapAll(),wrapInner()和unwrap()的包裹与解除包裹操作。文章还提到了前端面试技巧和求职建议。
摘要由CSDN通过智能技术生成
    • one
    • two
    • three
    • 此时是这样的:

      在这里插入图片描述

      用empty()清空ul下的所有后代元素

      $(‘ul’).empty();

      效果:

      在这里插入图片描述

      用html()和text()方法也能实现清空的效果:

      $(‘ul’).html(‘’);//用html(‘’)将标签里的内容变成空字符串,相当于清空

      $(‘ul’).text(‘’);//理由同上

      1.2 remove()、detach():删除当前选中的元素

      remove():在dom结构中删除元素,也会移除被选元素的数据和事件,仅返回匹配的dom元素本身

      detach():在dom结构中删除元素,返回匹配的dom元素及匹配元素上绑定的事件、附加的数据

      提示:

      如需移除元素,但保留数据和事件,请使用 detach() 方法代替。

      如只需从被选元素移除内容,请使用 empty() 方法。

      demo:用remove和detach分别实现点击元素,选中的元素被删除的功能;再点击add按钮,恢复元素,看看恢复回来的对象的区别

      • one
      • two
      • add

        //删除li.one,并存储返回值

        var one = $(‘.one’).click(function(){

        $(this).remove();

        })

        //删除li.two,并存储返回值

        var two = $(‘.two’).click(function(){

        $(this).detach();

        })

        //点击add按钮,将前面俩个返回值再加回来

        $(‘.btn’).click(function(){

        $(‘ul’).append(function(){

        return one.add(two);

        })

        })

        效果:可以看到,恢复之后的one,点击之后没有被删除,即没有保留one绑定的点击事件,而two有

        在这里插入图片描述

        1.3 clone():克隆

        在上面的demo上面再加一个按钮,给这个按钮添加点击事件,点击时克隆一次li.two

        clone

        var clone = $(‘.two’).clone();

        $(‘.clone’).click(function(){

        $(‘ul’).append(clone);

        })

        效果:点击一次,克隆出一个,但绑定的点击事件没有克隆过来,且多次点击也只有一个

        在这里插入图片描述

        var clone = $(‘.two’).clone(true);

        传入’true’,绑定的点击事件就被克隆过来了

        在这里插入图片描述

        但由于每次点击都是克隆li.two,一个对象只能克隆出一个副本,多次点击不能克隆出新元素,append的始终都是那个副本,同一个对象做同样的操作,效果不会改变,只是一遍遍在原li.two后面添加这个克隆的对象

        另:append传入的参数如果是新的对象,就能一直加,比如用字符串拼接的对象:

        var clone = ‘

      • li
      • $(‘.clone’).click(function(){

        $(‘ul’).append(clone);

        })

        如果是已存在的对象,就不能多次添加,因为本体只有一个,每次拿到的都是这个本体的索引,然后对这个本体做同样操作

        var clone = $(‘.one’);//取已存在的li.one

        $(‘.clone’).click(function(){

        $(‘ul’).append(clone);//添加进ul

        })

        效果:可以看到,li.one换了位置,说明是对本体做操作的

        在这里插入图片描述

        2. wrap()、wrapAll()、wraplnner()、unwrap()


        wrap():每个单独包裹,每个匹配的元素都包上指定的标签,可以兼容只写头标签,但不能只写尾标

        wrapAll():集体包裹,会破坏dom结构,需要精确定位标签

        wraplnner():内部包裹,

        unwrap():解除包裹,无参,支持链式调用,一层层包裹解除,直至body

        2.1 wrap():

        • one
        • two
        • $(‘li’).wrap(‘

          ’);

          总结
          • 对于框架原理只能说个大概,真的深入某一部分具体的代码和实现方式就只能写出一个框架,许多细节注意不到。

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

          • 算法方面还是很薄弱,好在面试官都很和蔼可亲,擅长发现人的美哈哈哈…(最好多刷一刷,不然影响你的工资和成功率???)

          • 在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。

          • 要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!

          第一次跳槽十分忐忑不安,和没毕业的时候开始找工作是一样的感受,真的要相信自己,有条不紊的进行。如果有我能帮忙的地方欢迎随时找我,比如简历修改、内推、最起码,可以把烦心事说一说,人嘛都会有苦恼的~

          祝大家都有美好的未来,拿下满意的 offer。

        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

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

        抵扣说明:

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

        余额充值