如何只克隆多个嵌套元素中的一个

时间:2010-03-22 01:59:12

标签: jquery

如何判断我克隆的div是否具有多个具有某个类的子div,如果是,则只克隆其中一个。

假设克隆的div是.diseaseCon,并且子div是.symptomCon,在克隆操作中,如何检测是否存在多个.symptomCon div并且只有克隆一个?

2 个答案:

答案 0 :(得分:4)

e.g。找到第一个.diseaseCon并克隆它只使用克隆第一个.symptomCon(实际上我删除了所有.symptomCon但第一个却相同但是相同)

$('.diseaseCon').clone().find(".symptomCon:not(:first)").remove();

如果你想克隆它,例如然后将它附加到身体使用

$('.diseaseCon').clone().find(".symptomCon:not(:first)").remove().end().appendTo("body");

$('.diseaseCon').clone().appendTo("body").find(".symptomCon:not(:first)").remove();

取决于您更喜欢的语法(第一个语法应该更快,因为所有操作都在片段上完成,只有dom被修改

您也可以将:not(:first)替换为:gt(0)。或者,如果您想保留另一个症状,但第一次使用:not(:eq(X)),其中X是您要保留的症状的索引

答案 1 :(得分:1)

如果您正在克隆父DIV,我认为您需要在完成克隆后删除除克隆之外的所有内部DIV。

 var klone = $('.diseaseCon').clone();
 klone.find('.symptomCon:gt(0)').remove();
 ...now do something with the clone...