0

HTML要素を動的に追加できるスクリプトを作成しましたが、ここでの問題は、動的に作成されるこれらの要素に値があることです。以下はスクリプトです

$(document).ready(function(){
$("#noOfSegments").change(function(){
var counter=$("#noOfSegments").val();
for(i=1; i<=counter; i++){
var row = $("<tr><td>"+i+"</td><td><input type='text' name='segmentName"+i+"'></input></td><td><select name='dataType"+i+"'><option value='0'>0</option><option value='1'>1</option></select></td><td><select name='dataType"+i+"'><option value='0'>0</option><option value='1'>1</option></select></td><td><input type='checkbox' name='mandatoryFlag"+i+"'></td></tr>");
$("#segmentTable").append(row);
}
var rowcount = $("#segmentTable tr").length;
while (rowcount > counter) {
$("#segmentTable tr:last-child").remove();
rowcount = $("#segmentTable tr").length;
  }
 });
});

$("#noOfSegments") は、オプション値 1、2、および 3 の選択です。最初にオプション 3 を選択すると、1、2、および 3 として「+i+」が表示されますが、最初にオプション 1 を選択すると、オプション 2 を指定すると、「+i+」に 1, 1 が返されます。オプション 1 を選択してからオプション 3 を選択すると、1,1,2 が返されます。

4

1 に答える 1

0

新しいノードを追加する前に$("#segmentTable tr").remove()(すべてのノード)する必要があります。<tr>

これが編集されたフィドルです。

コードで何が起こっているかというと、テーブルの最後に X 個の新しいノードを追加してから、テーブルの最後から X 個のノードの削除を開始します。つまり、追加したばかりのノードの一部を削除します。新しいノードを追加する前に、テーブルの上部からノードを削除するか、すべてのノードを削除する必要があります (フィドルで行った行)。

于 2013-08-24T13:50:23.690 に答える