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