次の jQuery コードがあります (x は 3、i は 1、storeid は 4):
function addNewTableRow(x,i,storeid){
$('#kds_resultsTable tbody').append('<tr></tr>'); //tr:nth-child('+(i)+')'
for (var a=1; a<=x; a++) {
if(a==1){
$('#kds_resultsTable tbody tr:nth-child('+(i)+')').append($.parseHTML("<td class='"+i+"'></td>"));
}else{
$('#kds_resultsTable tbody tr:nth-child('+(i)+')').append($.parseHTML("<td class='"+i+" kds_elementstoreid_"+storeid+"></td>"));
}
}
}
ただし、x が実際に 3 の場合 (else ケースを正確に 2 回出力する必要があることを示します)、HTML 出力は次のようになります (例として 1 つのテーブル行)。
<tr>
<td class="5 kds_elementsstoreid_4"></td>
</tr>
.append は、以前に for ループに追加されたテキストを上書きし、ループの最後の反復で生成された HTML だけを残しているようです。<td></td>
1つだけでなく、3つの要素を期待していました。
ここで使用する適切な jQuery 関数は.append()
ありますか、それとも以前のコンテンツを上書きしない他の何かを使用する必要がありますか? を使用せずにここでやりたいことを達成する別の方法がわかりません.append()
。
参考までに、利用可能な最新バージョンの jQuery を使用しています (2013 年 3 月 15 日現在)。