递增表单元素的名称javascript

递增表单元素的名称javascript,javascript,dom,Javascript,Dom,我有一堆表单元素,可以通过“添加字段”按钮不断添加。 现在我想给这些字段起一个递增的名字,比如 输入-name-xyz-1,输入-name-xyz-2 输入-name-abc-1,输入-name-abc-2 foo-1,foo-2,foo-3 等等 “addField”按钮调用一个名为addField()的函数,该函数操作dom元素以复制节点 我在为增量名称创建逻辑时遇到问题。你们能帮帮我吗 下面是我正在编写的代码(表单元素是由laravel生成的) /*HTML*/ {{Form::label

我有一堆表单元素,可以通过“添加字段”按钮不断添加。 现在我想给这些字段起一个递增的名字,比如

输入-name-xyz-1,输入-name-xyz-2

输入-name-abc-1,输入-name-abc-2

foo-1,foo-2,foo-3

等等

“addField”按钮调用一个名为addField()的函数,该函数操作dom元素以复制节点

我在为增量名称创建逻辑时遇到问题。你们能帮帮我吗

下面是我正在编写的代码(表单元素是由laravel生成的)

/*HTML*/
{{Form::label('成就','成就:')}

{Form::input('input-name-xyz-1',$competition_games,input::old('acquisition-competition'),array('id'=>'acquisition competition');} {{Form::select('input-name-abc-1',array('Year-Place'),input::old('saccessment-Year'),array('id'=>'saccessment Year'))} {Form::select('foo-1',array('Position','Gold'=>'Gold','Silver'=>'Silver','brown'=>'brown','Participant'=>'Participant'),Input::old('saccessment-acled'),array('id'=>'saccessment'))

+
还有javascript

function addField(elem){
    var parent = elem.parentNode;
    var addName = parent.id;
    var count = ++(parent.getElementsByClassName("count")[0].value);
    var lastNode = parent.getElementsByClassName("addedField")[count-2];
    var clone = lastNode.cloneNode(true); 
    var nodes = clone.childNodes;
    for(i=0; i<nodes.length-1; i++){
        nodes[i].value = "";
        nodes[i].name = //I need the logic right here//.
    }
    if(count == 2)
        clone.innerHTML += "<a class='removeLink' onClick='removeField(this)'>X</a>";
    parent.insertBefore(clone,elem);
}
函数添加字段(elem){
var parent=elem.parentNode;
var addName=parent.id;
var count=++(parent.getElementsByClassName(“count”)[0].value);
var lastNode=parent.getElementsByClassName(“addedField”)[count-2];
var clone=lastNode.cloneNode(true);
var nodes=clone.childNodes;

对于(i=0;i,使用此函数递增字符串末尾的任何数字

function incNumAtEnd(s) {
  return s.replace(/\d$/, function(match, ofs, str) {
    return (parseInt(match) + 1).toString();
  });
}
下面是代码中的用法

nodes[i].name = incNumAtEnd(nodes[i].name);

一些代码可以显示您当前正在做的事情;-)是的,我们可以帮助您。但要解决问题,我们需要查看它们…非常感谢。这太棒了。:)
nodes[i].name = incNumAtEnd(nodes[i].name);