jquery の .html() から特定の要素 (#add_phone の付いたボタン) を削除する必要があります。
これが問題です。まずfield(電話番号)+select(電話種別)+button(#add_phone)があり、この3つをコンテナとしてdivで囲みます。ボタンをクリックすると、.html() を介して再作成されます。JS は次のとおりです。
$('#add_phone').click(function() {
$('div.multiple_number:last').after('<div id="phone_div_id' + phone_div_id + '" class="multiple_number">'+ $('div.multiple_number').html() +'</div>');
...
//append a remove [-] button, etc...
});
ここにhtmlがあります:
<div class="multiple_number" id="phone_div_id0">
<label>Phone Number(s):</label>
<input name="phone" id="phone[]" placeholder="Phone Number"/>
<select name="phone_type[]" id="phone_type">
<option value="1">Mobile</option>
<option value="2">Home</option>
<option Value="3">Office</option>
<option Value="3">Fax</option>
</select>
<input type="button" name="add_phone" class="add_phone_class" id="add_phone" value="ADD MORE" />
</div>
つまり、フォームに複数の電話番号を作成しています。しかし、ここで問題です。内部は input type="button" (#add_phone
ボタン) です。そして、それを .html() から除外したいと思います。
私が試してみました:
$('div.multiple_number:not(#add_phone)').html()
$('div.multiple_number:not(input#add_phone)').html()
$('div.multiple_number:not(#add_phone)').not(#add_phone).html()
$('div.multiple_number:not(#add_phone)').not(input#add_phone).html()
そして、ID名を使用する代わりにクラス名に対応します。また、審美的な理由から、#add_phone ボタンを div の外に配置したくありません。