私はクローンを作成し、選択ボックスの値に基づいて追加する必要がある大きなHTMLブロックを持っています。これはそのまま動作しますが、実際のHTMLブロックを使用する代わりに、クローンを使用して特定のコンテンツを動的に変更できるかどうかを知りたかったのです。jQueryで大きなHTMLブロックを複製/追加しますが、内部変数を変更しますか?
HTML:
<select id="guestNum">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<div class="group-sizing">
<div class='form-group row border'>
<div class='inner'>
<h3>Guest 1 Welcome</h3>
<div class='select'>
<select class='form-control' id='guest1'>
<option value='New' selected>New</option>
<option value='Existing'>Existing</option>
</select>
</div>
</div>
<div class='inner'>
<h3>Date</h3>
<div class='date'>
<div class='inner'>
<p>April 1</p>
<p>No Guests</p>
</div>
</div>
</div>
</div>
</div>
JS:
var comDate = $("<div class='inner'>\
<p>April 1</p>\
<p>No Guests</p>\
</div>\
<div class='inner'>\
<p>April 2</p>\
<p>Guests Welcome</p>\
</div>");
$("#guestNum").change(function(){
var count = $(this).val();
$(".group-sizing .form-group:gt("+(count-1)+")").remove();
for (var i = $(".group-sizing .form-group").length; i < count; i++){
$("<div class='form-group row border'>\
<div class='inner'>\
<h3>Guest " + (i+1) + " Welcome</h3>\
<div class='select'>\
<select class='form-control' id='guest" + (i+1) + "'>\
<option value='New' selected>New</option>\
<option value='Existing'>Existing</option>\
</select>\
</div>\
</div>\
<div class='inner'>\
<h3>Date</h3>\
<div class='date'>" + comDate + "</div>\
</div>\
</div>").appendTo(".group-sizing");
}
});
私はすでに、ページ上のコードのブロックを含んでいるので、私は必要なの変更、私は私が持っているものだけで複製することができるかどうかを知りたいですそれから、js内のすべてのHTMLを再び持たずにそのようにします。
は、あなたがハンドルバーのように、このためのフレームワークを使用して考えたことはありますか?私はいつもフレームワークを使用することを強く信じる人ではありませんが、この場合、これを多く単純化します。 –
4月1日以降に削除されるのは、文字通り1ページにすぎないので、フレームワークはおそらく過剰です。 –