jQuery动态添加行
我试图通过jQuery动态添加行,但不是添加1行,而是一次添加2行 代码如下: jQuery代码:jQuery动态添加行,jquery,Jquery,我试图通过jQuery动态添加行,但不是添加1行,而是一次添加2行 代码如下: jQuery代码: $(document).ready(function() { var current_id = 1; $('#add').click(function(){ next_element($('#timesheetrow1')); }) function next_element(element){ var new_element = element.clone(), id
$(document).ready(function() {
var current_id = 1;
$('#add').click(function(){
next_element($('#timesheetrow1'));
})
function next_element(element){
var new_element = element.clone(),
id = current_id + 1;
current_id = id;
if (id <7) {
new_element.attr("id",element.attr("id").split("1")[0]+id);
$(':input', new_element).each(function(){
var field_id = $(this).attr("id"),
field_name = $(this).attr("name");
$(this).attr("id", field_id.split("1")[0]+id );
$(this).attr("name", field_name.split("1")[0]+id );
});
new_element.appendTo($("#timesheet-rows"));
}
};
});
$(文档).ready(函数(){
无功电流_id=1;
$('#添加')。单击(函数(){
下一个元素($('timesheetrow1');
})
函数下一个元素(元素){
var new_element=element.clone(),
id=当前_id+1;
当前_id=id;
如果(id创建指定元素的深度副本。通过克隆和追加,您将获得指数增长而不是线性增长。即,当您第一次添加一个元素时,您可以,但第二次,您将复制原始元素和添加的子元素,因此您将添加2而不是1。下次,您将复制原始元素及其3个子元素,并添加4而不是1,依此类推
避免此问题的一种方法是使用javaScript而不是jQueryclone
next_element(document.getElementById("timesheetrow1"));
var new_element = element.cloneNode(false);
您要添加多少个输入?它添加一行,在这里检查,一次只添加一行,现在,它添加两行(timesheetrow2)有没有更好的方法可以做到这一点?我可以动态添加行,并将它们作为finalNumber 1、finalNumber 2追加,这样它们对于数据库是唯一的inserts@user2675939没有什么可以阻止您这样做。如果您需要再次将元素转换为jQuery选择器,只需使用$(new\u element)
。关键是不要进行深度克隆,我看不出用jQuery.clone()可以避免这种情况。
next_element(document.getElementById("timesheetrow1"));
var new_element = element.cloneNode(false);