2012-01-03 26 views
36

enter image description herejquery bản sao div và thêm nó sau khi div cụ

Hi guys, từ hình trên, tôi muốn nhân bản div với id # car2 và thêm nó sau khi div ngoái với id bắt đầu với chiếc xe, trong này ví dụ id # car5. Làm thế nào tôi có thể làm điều đó? Cảm ơn.

Đây là mã cố gắng của tôi:

$("div[id^='car']:last").after('put the clone div here'); 

Trả lời

104

Bạn có thể sử dụng bản sao, và sau đó vì mỗi div có một lớp của car_well bạn có thể sử dụng insertAfter để chèn sau div cuối cùng.

$("#car2").clone().insertAfter("div.car_well:last"); 
+0

I đang cố gắng sử dụng tương tự để thêm nhiều tệp đính kèm vào biểu mẫu. Bạn có thể giải thích cách loại bỏ div này bằng chức năng trung lập (vì vậy về cơ bản, tôi sẽ có 1 chức năng để thêm div và một hàm khác để xóa div cuối cùng) –

+0

Điều này hoạt động tốt, nhưng html() với chức năng ẩn danh có khả năng mạnh hơn , tùy thuộc vào ứng dụng. https://stackoverflow.com/questions/8707756/jquery-clone-div-and-append-it-after-specific-div#answer-47063071 – plaidcorp

8

thử này ra

$("div[id^='car']:last").after($('#car2').clone()); 
+0

Tôi thích nó - http : //jsfiddle.net/VgwKt/ – mrtsherman

+0

Và làm cách nào để tăng số id lên ô tô 6 sau khi sao chép? – Mikeys4u

+0

@ Mikeys4u tôi không chắc chắn về đỉnh đầu của tôi, tôi tìm thấy chủ đề này trên cùng một chủ đề http://stackoverflow.com/questions/10126395/how-to-jquery-clone-and-change-id – mcgrailm

0

Điều này có tác dụng tuyệt vời nếu có bản sao thẳng. Nếu tình huống kêu gọi tạo đối tượng mới từ mẫu, tôi thường quấn div mẫu trong div lưu trữ ẩn và sử dụng html của jquery() cùng với clone() áp dụng kỹ thuật sau:

<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> 
Các vấn đề liên quan