尝试复制上一行(或创建空白行)并让它将每个输入字段的id和名称递增1.然而,所有这一切都是将数字加到最后。导致id012345等。
我知道.slice()可以删除最后一个字符,但我无法正确实现它。有什么建议吗?
<script type='text/javascript'>
$(window).load(function(){
var i = 0;
//clone previous row
$(".clone").click(function() {
$("table tr:last").clone().find("input").each(function() {
$(this).attr({
'id': function(_, id) { return id.slice(0, - 1) + i },
'name': function(_, name) { return name + i },
'value': function(_, value){ return value }
});
}).end().appendTo("table");
i++;
});
//create blank row
$(".blank").click(function() {
$("table tr:last").clone().find("input").each(function() {
$(this).attr({
'id': function(_, id) { return id.slice(0, - 1) + i },
'name': function(_, name) { return name + i },
'value': ''
});
}).end().appendTo("table");
i++;
});
});
</script>
答案 0 :(得分:1)
你在想这个:
$("#clone").click(function() {
$("#cloningTable tr:last").after($("#cloningTable tr:last").clone());
$("#cloningTable tr:last").attr("id", "tr" + $("#cloningTable tr").length);
});
只需使用length
的{{1}}来确定ID。
这是一个小提琴:http://jsfiddle.net/LimitedWard/ufN38/
编辑:我假设您还想编辑表格行内的任何ID。只需修改我的代码(例如tr
)即可将相同的概念应用于子元素。