Javascript 动态更改ID

Javascript 动态更改ID,javascript,Javascript,我有以下一些输入: <input type="hidden" id="selected_id-1" name="e_id[]" /> <input type="hidden" id="selected_id-2" name="e_id[]" /> <input type="hidden" id="selected_id-3" name="e_id[]" /> <input type="hidden" id="selected_id-4" name="e_

我有以下一些输入:

<input type="hidden" id="selected_id-1" name="e_id[]" />
<input type="hidden" id="selected_id-2" name="e_id[]" />
<input type="hidden" id="selected_id-3" name="e_id[]" />
<input type="hidden" id="selected_id-4" name="e_id[]" />

我还为每个输入设置了删除该输入的按钮

但是,当我删除例如
“selected_id-2”
输入时,我想更新下一个输入的id。因此
“selected\u id-3”
将变成
“selected\u id-2”
,而
“selected\u id-4”
-
“selected\u id-3”

我怎样才能更新那些身份证?
需要纯JavaScript,无需框架。

您可以使用DOM gymnatstic之类的

document.getElementById("elementId").id.value="newId"   

你想要这样的吗

var els = document.getElementsByTagName('input');
for (var i=0; i<els.length; i++) {
    els[i].id = 'selected_id-'+i;
}

可以在JavaScript中使用名为的方法

JavaScript方式: jQuery方式:
您可以将所有
元素放入一个数组中。迭代该数组,然后当达到所需的数字时,将
'select_id-'+(i)
替换为
'select_id-'+(i-1)

下面是如何获取所有
元素的数组:

var myControls = document.getElementsByTagName('input');
然后你通过一个for(概念代码):

for(var i=1;i<[myControls的长度];i++{
如果(此id的编号
根据您的标记,可能有更好的方法获取所有输入,例如,查找给定容器中的所有内容,但如果缺少此类信息,您仍然可以执行以下操作:

function updateIds() {

   var count = 0;

   var inputs = document.getElementsByTagName('input');
   for(var i = 0; l = inputs.length; i < l; i++) {
      if(inputs[i].name == 'e_id[]') {

         inputs[i].id = 'selected_id-' + (++count);

      }
   }

}
函数updateIds(){
var计数=0;
var inputs=document.getElementsByTagName('input');
对于(变量i=0;l=inputs.length;i
没有jQuery?它也是纯JavaScript。:)@PraveenKumar,Jquery是Javascript@TWCrap-是的,伙计,我就是这么说的!哦,对不起,我的错。读错了。你真的让每个人都为你编写了应用程序。这将改变所有的ID。它部分看起来像我想要的。这将起作用,但它非常脆弱。。。如果存在任何类型的任何其他输入,则此函数将使其他元素变得混乱。@scunlife您是否看过我使用querySelectorAll的建议?这必须根据OP的需要进行改进,但这一点都不脆弱。@dystroy啊,是的,添加得不错!当我发表评论时,那部分还没有出现您不需要setAttribute来设置id。顺便说一句,我还没有否决。更清楚的是:
document.getElementById(“selected_id-2”).id=“newid”完美地工作。
$("#selected_id-2").attr("id", "selected_id-3");
$("#selected_id-" + number_to_change).attr('id',"selected_id-"+(number_to_change-1));
var myControls = document.getElementsByTagName('input');
for (var i = 1; i < [length of myControls]; i++) { 
    if (this_id's_number < i) {
        continue;
    } else if (this_id's_number == i) {
        remove this input
    } else {
        current_number = getCurrentNumberFromID();

        current input's id = current_number -1;
    }
}
function updateIds() {

   var count = 0;

   var inputs = document.getElementsByTagName('input');
   for(var i = 0; l = inputs.length; i < l; i++) {
      if(inputs[i].name == 'e_id[]') {

         inputs[i].id = 'selected_id-' + (++count);

      }
   }

}