Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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
Javascript jquery增量id和附加行中子级的名称_Javascript_Jquery - Fatal编程技术网

Javascript jquery增量id和附加行中子级的名称

Javascript jquery增量id和附加行中子级的名称,javascript,jquery,Javascript,Jquery,大家好。我在一个长而复杂的表单中向一个表添加“更多行”按钮,要添加行,我要克隆表中的一个现有行,修改它,然后将它追加到表的末尾 该行包含具有按顺序编号的id和name属性的输入(例如,第一行的id=“Item_Name1”和name=“Item_Name1”,第二行的id=“Item_Name2”和name=“Item_Name2”,等等)。我正在寻找在附加行中继续此编号顺序的最佳方法 以下是jQuery: jQuery.noConflict(); jQuery(document).ready

大家好。我在一个长而复杂的表单中向一个表添加“更多行”按钮,要添加行,我要克隆表中的一个现有行,修改它,然后将它追加到表的末尾

该行包含具有按顺序编号的id和name属性的输入(例如,第一行的id=“Item_Name1”和name=“Item_Name1”,第二行的id=“Item_Name2”和name=“Item_Name2”,等等)。我正在寻找在附加行中继续此编号顺序的最佳方法

以下是jQuery:

jQuery.noConflict();

jQuery(document).ready(function($){
  var i = $("table#table-id tbody tr").length;
  $("button#more-rows").click(function() {
      var clonedRow = $("table#table-id tbody tr:first").clone();
      i++;
      $("*[name*='1']", clonedRow).attr('id', function() {
          var attrval = $(this).attr("id");
          var attrval = attrval.replace( /\d/g , "" );
          return attrval + i
          });
      $("table#table-id").append(clonedRow);
  });
});

这适用于id,但如何增加名称属性?我们也非常感谢任何关于更简单和/或更有效地编写此文档的提示。

这可能会有帮助,也可能不会有帮助,但下面是:

如果您使用的是PHP,而不是用数字作为字段名的后缀,您可能希望尝试将它们命名为“fieldname[]”,而不提供ID。因此,您可以使用如下标记:

<input type="text" name="Item_Name[]" />

不确定整个性能位,但您不能链接另一个attr函数,该函数的功能与第一个函数完全相同,只是用于“name”属性吗

    jQuery(document).ready(function($){
      var i = $("table#table-id tbody tr").length;
      $("button#more-rows").click(function() {
          var clonedRow = $("table#table-id tbody tr:first").clone();
          i++;
          $("*[name*='1']", clonedRow).attr('id', function() {
              var attrval = $(this).attr("id");
              var attrval = attrval.replace( /\d/g , "" );
              return attrval + i
          }).attr('name', function() {
              var attrval = $(this).attr("name");
              var attrval = attrval.replace( /\d/g , "" );
              return attrval + i
          });;
          $("table#table-id").append(clonedRow);
      });
    });

我考虑过链接.attr,但不确定这是否是最简单的方法。很高兴知道我很接近。:)不管怎样,这很有效-谢谢!你是个救命的人。。。!我正在搜索如何从昨天开始添加每一行的递增id。但我知道php方面应该有一个技巧。就是这样。谢谢!你们给出了几乎相同的答案,所以也要部分归功于你们。:)谢谢你的帮助!
jQuery.noConflict();

jQuery(document).ready(function($) {
    var i = $("table#table-id tbody tr").length;
    $("button#more-rows").click(function() {
        var clonedRow = $("table#table-id tbody tr:first").clone();
        i++;
        $("*[name*='1']", clonedRow).attr('id', function() {
            var attrval = $(this).attr("id");
            attrval = attrval.replace(/\d/g, "");
            while($('#' + attrval + i).size() > 0) {
                i++;
            }
            return attrval + i;
        }).attr('name', function() {
            var attrval = $(this).attr("name");
            attrval = attrval.replace(/\d/g, "");
            return attrval + i;
        });
        $("table#table-id").append(clonedRow);
    });
});
    jQuery(document).ready(function($){
      var i = $("table#table-id tbody tr").length;
      $("button#more-rows").click(function() {
          var clonedRow = $("table#table-id tbody tr:first").clone();
          i++;
          $("*[name*='1']", clonedRow).attr('id', function() {
              var attrval = $(this).attr("id");
              var attrval = attrval.replace( /\d/g , "" );
              return attrval + i
          }).attr('name', function() {
              var attrval = $(this).attr("name");
              var attrval = attrval.replace( /\d/g , "" );
              return attrval + i
          });;
          $("table#table-id").append(clonedRow);
      });
    });