そのため、ページに表示される新しい電話データを取得するための jQuery コードに取り組んでいます。
これまでのところ、電話番号の数に関係なく最後の電話番号が表示されることを除いて、すべてが機能しています。私が$('.new_option').append(inputphone);
最後のものをオーバーライドしているためであることがわかりました。
これがjsFiddleです(データベースオブジェクトがないため、まったく同じコードではありませんが、同じ問題が発生します):http://jsfiddle.net/leongaban/dvYMb/
変数 (ラベル付き HTML + 入力):
var inputphone = $("<li><label></label><br/><input type='tel' pattern='[0-9]{10}' class='added_phone' name='' value='' autocomplete='off' maxlength='20' /></li>");
HTMLDOM:
<li>
<ul class="new_option">
</ul>
</li>
各ループ:
$(profileData.phones).each(function(i) {
console.log(' ');
console.log('Phones: '+i);
console.log(profileData.phones[i].label);
$('.new_option').append(inputphone); //<-- The Issue
$('.added_phone').parent().find('label').text(profileData.phones[i].tag);
$('.added_phone').attr('id', "added_"+profileData.phones[i].tag+"phone" + i);
$('.added_phone').attr('value', profileData.phones[i].label);
});
コンソール:
ページの結果:
私の質問は、この行で一意の ID を持つ新しいフィールドを動的に生成するにはどうすればよいですか?
$('.new_option').append(inputphone);
このあたりを検索すると、オブジェクトを使用していると言っている人がいますが、そのアプローチはまだ成功していません。
これをどのように処理しますか?