admin管理员组文章数量:1399339
What is a simple way to duplicate every element in a class as a sibling? For example, it should change this HTML:
<body>
<div>
<h1> Foos </h1>
<span class='duplicate-me'> foo </span>
</div>
<div>
<h1> Bars </h1>
<span class='duplicate-me'> bar </span>
</div>
</body>
into:
<body>
<div>
<h1> Foos </h1>
<span class='duplicate-me'> foo </span>
<span class='duplicate-me'> foo </span>
</div>
<div>
<h1> Bars </h1>
<span class='duplicate-me'> bar </span>
<span class='duplicate-me'> bar </span>
</div>
</body>
Thanks
What is a simple way to duplicate every element in a class as a sibling? For example, it should change this HTML:
<body>
<div>
<h1> Foos </h1>
<span class='duplicate-me'> foo </span>
</div>
<div>
<h1> Bars </h1>
<span class='duplicate-me'> bar </span>
</div>
</body>
into:
<body>
<div>
<h1> Foos </h1>
<span class='duplicate-me'> foo </span>
<span class='duplicate-me'> foo </span>
</div>
<div>
<h1> Bars </h1>
<span class='duplicate-me'> bar </span>
<span class='duplicate-me'> bar </span>
</div>
</body>
Thanks
Share Improve this question edited Sep 10, 2017 at 1:36 kukkuz 42.4k6 gold badges64 silver badges102 bronze badges asked Dec 14, 2016 at 17:14 Zachary NaglerZachary Nagler 7712 gold badges8 silver badges16 bronze badges 04 Answers
Reset to default 3$('.duplicate-me').after(function() {
return $(this).clone();
});
Use the after method from jQuery and call the clone method in the function you are passing to it.
References: http://api.jquery./after/
http://api.jquery./clone/
Example: https://jsfiddle/2y6cqLrq/
There you go - append
to the parent element after cloning
the duplicate-me
element.
See demo below:
$(function(){
$('.duplicate-me').each(function(){
$(this).parent().append($(this).clone());
});
});
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div>
<h1> Foos </h1>
<span class='duplicate-me'> foo </span>
</div>
<div>
<h1> Bars </h1>
<span class='duplicate-me'> bar </span>
</div>
</body>
Use insertAfter to insert the duplicate element created using clone just next to it
$(function(){
$('.duplicate-me').each(function(){
$(this).clone().insertAfter($(this))
})
});
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div>
<h1> Foos </h1>
<span class='duplicate-me'> foo </span>
</div>
<div>
<h1> Bars </h1>
<span class='duplicate-me'> bar </span>
</div>
</body>
All you need is:
1)Clone elements with .duplicate-me
class.
2)Append those elements to closest
div, which is their parent
.
Please try this:
$('.duplicate-me').each(function(){
var clone= $(this).clone();
$(this).closest('div').append(clone);
});
References:
- clone
- closest
$('.duplicate-me').each(function(){
var clone= $(this).clone();
$(this).closest('div').append(clone);
});
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div>
<h1> Foos </h1>
<span class='duplicate-me'> foo </span>
</div>
<div>
<h1> Bars </h1>
<span class='duplicate-me'> bar </span>
</div>
</body>
本文标签: javascriptHow do I clone and append multiple elements in place with jQueryStack Overflow
版权声明:本文标题:javascript - How do I clone and append multiple elements in place with jQuery? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744194825a2594690.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论