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 0
Add a ment  | 

4 Answers 4

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