向父元素内添加其中的子元素会覆盖当前子元素及不覆盖原本子元素的解决方法

首先显示初始状态:

<body>
  <div class="parent">
    <div class="child">0</div>
    <div class="child">1</div>
    <div class="child">2</div>
  </div>
  <script src="common/jquery/jquery-3.3.1.js"></script>
  <script>
    $(function(){
      var parent = $('.parent')    //获取父元素
      var childs = parent.children();    //获取所有的子元素
    })
  </script>
</body>

以上显示为:

正常使用append()向父元素内追加第一个子元素:

$(function(){
      var parent = $('.parent')
      var childs = parent.children();
      parent.append(childs.eq(0));    //使用append()向父元素内追加第一个子元素
    })

显示结果为:第一个子元素被拿走后追加到了父元素的末尾。


但是我们要实现我们理想中的追加效果,需要这样的写法:

$(function(){
      var parent = $('.parent')
      var childs = parent.children();
      var childsHTML = parent.html();    //获取包含所有的子元素的字符串
      var rule = /\>\s*\</g;    //匹配到所有的 “ >< ” 或 “ >  <” 字符串
      childsHTML  = childsHTML.replace(rule, '>,<').split(',');    //将所有的子元素分割成数组
      parent.append(childsHTML[0]);    //将选中的元素追加到父元素的最后一位
    })

显示结果为:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值