我编写了一个可以动态添加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 你能帮帮我吗?
答案 0 :(得分:0)
在添加新节点之前,您应该$("#segmentTable tr").remove()
(所有<tr>
个节点)。
您的代码发生的是您在表的末尾添加X个新节点,然后从表的末尾开始删除X节点,实质上是删除您刚刚添加的一些节点。您应该从表顶部删除节点,或者在添加新节点之前删除所有节点(我在小提琴中执行的行)。