所以我有一个带有一些子元素的元素,当我尝试在父元素上使用jQuery.clone()时,它会克隆父元素(包含所有子元素),然后再次克隆kiddos。用一个例子来澄清:
使用Javascript:
$(parent).clone(false).appendTo(container);
原始HTML
<parent>
<element1>
<element2>
</parent>
<container></container>
修改HTML:
<parent>
<element1>
<element2>
</parent>
<container>
<parent>
<element1>
<element1>
</parent>
<element1>
<element2>
</container>
现在,我需要一种方法来阻止函数克隆元素,而不使用ID或类,因为我无法预测父级的内容。
编辑:Fiddle!
谢谢,
露娜
答案 0 :(得分:2)
如果你在.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();
(我发布这个作为答案,因为我觉得评论不足以让其他人发现这个问题作为资源)