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 时,它会给我 "+i+" 作为 1,2 和 3,但是当我首先选择选项 1 和选项 2 它给我 1, 1 表示“+i+” 如果我选择选项 1 然后选项 3 它给我 1,1,2 你们能帮我解决这个问题吗?

4

1 回答 1

0

在添加新节点之前,您应该$("#segmentTable tr").remove()(所有节点)。<tr>

这是一个编辑过的小提琴。

您的代码发生的情况是您在表的末尾添加 X 个新节点,然后开始从表的末尾删除 X 个节点,实质上删除了您刚刚添加的一些节点。您应该在添加新节点之前从表顶部删除节点或删除所有节点(我在小提琴中所做的行)。

于 2013-08-24T13:50:23.690 回答