こんにちは、上の写真から、ID#car2のdivを複製し、IDがstartcarの最後のdivの後に追加します(この例ではID#car5)。どうすればそれができますか?ありがとう。
これは私の試用コードです:
$("div[id^='car']:last").after('put the clone div here');
Cloneを使用できます。各divにはcar_wellのクラスがあるため、insertAfterを使用して最後のdivの後に挿入できます。
$("#car2").clone().insertAfter("div.car_well:last");
これを試してください
$("div[id^='car']:last").after($('#car2').clone());
あなたはそれをjQueryの clone()
関数を使用して行うことができます、受け入れられた答えは大丈夫ですが、私はそれに代わるものを提供しています、あなたは append()
、ただし、以下のようにhtmlをわずかに変更できる場合にのみ機能します。
$(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>
これは、ストレートコピーが正常に機能している場合に最適です。状況によってテンプレートから新しいオブジェクトを作成する必要がある場合、通常、テンプレートdivを非表示のストレージdivにラップし、jqueryのhtml()をclone()と組み合わせて次の手法を適用します。
<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>