Если вы вызываете клон изнутри .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, продублирует их и добавит.
- Найдет каждого ребенка, а также добавит его (оставив вам впечатление, что клон дважды дублируется).
Вместо этого, в зависимости от вашей установки, просто клонируйте родителя, внесите изменения и добавьте , что result.
Если вы хотите просто клонировать потомка .parent, попробуйте использовать другой селектор (возможно, .parent > .child
, чтобы показать прямые дочерние отношения). например $('.parent > .child').clone();
(я опубликовал это в качестве ответа, так как чувствовал, что комментарий не подходит для всех, кто может найти этот вопрос в качестве ресурса)