You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery中克隆父元素及其首尾子元素的简洁实现方法

克隆.row元素仅保留首尾子元素的最简jQuery实现

不需要多次调用clone()方法,用jQuery原生的链式调用就可以写出非常简洁的实现,全程不使用原生JS,方法调用数最少:

$('button').click(function() {
  $('div.row').clone(true).find('.item').remove().end().appendTo('body');
});

代码逻辑拆解

  • $('div.row').clone(true):选中原始行节点执行一次克隆,传入true参数会保留节点上绑定的所有事件和关联数据
  • .find('.item').remove():定位到克隆节点里所有需要过滤掉的.item中间元素,直接删除
  • .end():回退jQuery对象栈,因为find操作后当前匹配集合是被找到的.item元素,调用end()就会切回之前克隆得到的.row节点本身
  • .appendTo('body'):把处理完成的克隆节点直接追加到页面body末尾

原有CSS和HTML代码不需要做任何修改,替换掉原来的点击事件逻辑即可生效:

.row {
  border: 1px solid black;
  margin-bottom: 5px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>append</button>
<div class="row">
  <div class="first">append me!</div>
  <div class="item">DONT append me</div>
  <div class="item">DONT append me</div>
  <div class="last">append me!</div>
</div>

这个实现只有一次克隆操作,全程链式调用没有冗余的中间变量,性能和简洁度都最优。

内容的提问来源于stack exchange,提问作者Sigurd Mazanti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 00:06:36