Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery动态添加行_Jquery - Fatal编程技术网

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

我试图通过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 = 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而不是jQuery
clone

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);