jquery clone div and append it after specific div

后端 未结 4 511
被撕碎了的回忆
被撕碎了的回忆 2020-12-03 03:58

\"enter

Hi guys, from the picture above, I want to clone the div with id #car2 and app

相关标签:
4条回答
  • 2020-12-03 04:39

    You can do it using clone() function of jQuery, Accepted answer is ok but i am providing alternative to it, you can use append(), but it works only if you can change html slightly as below:

    $(document).ready(function(){
        $('#clone_btn').click(function(){
          $("#car_parent").append($("#car2").clone());
        });
    });
    .car-well{
      border:1px solid #ccc;
      text-align: center;
      margin: 5px;
      padding:3px;
      font-weight:bold;
    }
    <!DOCTYPE html>
    <html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    </head>
    <body>
    <div id="car_parent">
      <div id="car1" class="car-well">Normal div</div>
      <div id="car2" class="car-well" style="background-color:lightpink;color:blue">Clone div</div>
      <div id="car3" class="car-well">Normal div</div>
      <div id="car4" class="car-well">Normal div</div>
      <div id="car5" class="car-well">Normal div</div>
    </div>
    <button type="button" id="clone_btn" class="btn btn-primary">Clone</button>
    
    </body>
    </html>

    0 讨论(0)
  • 2020-12-03 04:40

    try this out

    $("div[id^='car']:last").after($('#car2').clone());
    
    0 讨论(0)
  • 2020-12-03 04:43

    You can use clone, and then since each div has a class of car_well you can use insertAfter to insert after the last div.

    $("#car2").clone().insertAfter("div.car_well:last");
    
    0 讨论(0)
  • 2020-12-03 04:57

    This works great if a straight copy is in order. If the situation calls for creating new objects from templates, I usually wrap the template div in a hidden storage div and use jquery's html() in conjunction with clone() applying the following technique:

    <style>
    #element-storage {
        display: none;
        top: 0;
        right: 0;
        position: fixed;
        width: 0;
        height: 0;
    }
    </style>
    
    <script>
    $("#new-div").append($("#template").clone().html(function(index, oldHTML){ 
        // .. code to modify template, e.g. below:
        var newHTML = "";
        newHTML = oldHTML.replace("[firstname]", "Tom");
        newHTML = newHTML.replace("[lastname]", "Smith");
        // newHTML = newHTML.replace(/[Example Replace String]/g, "Replacement"); // regex for global replace
        return newHTML;
    }));
    </script>
    
    <div id="element-storage">
      <div id="template">
        <p>Hello [firstname] [lastname]</p>
      </div>
    </div>
    
    <div id="new-div">
    
    </div>
    
    0 讨论(0)
提交回复
热议问题