防止 jQuery 通过 .clone() 创建重复克隆
prevent jQuery from creating duplicate clones via .clone()
所以我有一个包含几个子元素的元素,当我尝试在父元素上使用jQuery.clone()时,它会克隆父元素(及其所有子元素),然后再次克隆孩子。举个例子来说明:
Javascript:
$(parent).clone(false).appendTo(container);
原始网页
<parent>
<element1>
<element2>
</parent>
<container></container>
修改后的网页:
<parent>
<element1>
<element2>
</parent>
<container>
<parent>
<element1>
<element1>
</parent>
<element1>
<element2>
</container>
现在,我需要一种方法来防止函数克隆元素,而无需使用 ID 或类,因为我无法预测父级的内容。
编辑:小提琴!
谢谢
月
如果您从.each()
中调用克隆,它将通过每个选择器(在您的情况下,您将类同时提供给父级及其子级)并复制/附加每个找到的项目。简而言之:
<div class="parent">
<div class="child"></div>
<div class="child"></div>
</div>
<div class="container"></div>
$('.parent, .child').each(function(i,e){
$(this).clone().appendTo('.container');
});
将:
- 查找
.parent
(按层次结构)还将找到.child
ren,复制它们并附加它们。 - 将找到每个子项并附加它们(给您留下克隆是双重复制的印象)。
相反,根据您的设置,只需克隆父项,进行修改并附加该结果。
如果您只想克隆 .parent 的后代,请尝试使用其他选择器(也许.parent > .child
来显示直接的子关系)。 例如 $('.parent > .child').clone();
(我已将此作为答案发布,因为我觉得对于可能将此问题视为资源的其他人来说,评论是不够的)
相关文章:
- 创建jQuery Slider的简单方法
- 如何创建jQuery插件来缓存jQuery对象,如下所示
- 创建jQuery对象时出现问题
- 如何从javascript创建jQuery Mobile按钮
- 动态添加 HTML 元素后创建 jQuery 事件
- 创建 Jquery 条形图
- 不使用递归创建jquery无限动画
- 在PHP循环中动态创建jQuery列表视图
- 创建jquery函数并将其用于html元素
- 是否可以使用HTML从任意字符串创建Jquery对象,例如var$newlink=$('<a>新链接
- 为什么在修改String.prototype后创建jQuery插件时出现TypeError
- 从两个单独的函数创建 JQuery 悬停
- 创建 Jquery 更新函数
- 如果我动态创建jquery UI对话框,除了在单页应用程序中调用对话框(“关闭”)之外是否有任何清理
- 如何在对象更改时创建 Jquery 事件
- Javascript 循环未正确创建 jquery 控件
- 从表创建 jquery 实时预览
- 从 JSON 数据动态创建 Jquery 移动导航栏
- 创建 jquery promise 层次结构的指南
- 在纯 JS 中重新创建 jQuery live/on