如何更改id或name的值?

时间:2012-02-29 04:24:45

标签: javascript

示例:

<table id ='table'>
<tr>
<td>1</td>
<td><select id='old' name='old'></select></td>
<td><select id='old2' name='old2'></select></td>
<td><div id='old3' name='old3'></div></td>
</tr>
</table>

如何更改id或名称的值,从select id =' old '中选择id =' new '(例如)删除javascript中的行后? 我一直在尝试所有的方法,比如尝试getElementById('old')='new'但不行,使用replaceChild也行不通(或者我输错了代码,不知道)。 你有其他选择吗? (请不要JQuery。)

感谢。

4 个答案:

答案 0 :(得分:3)

您可以使用setAttribute方法完成此操作

document.getElementById("old").setAttribute("id","new");
document.getElementById("new").setAttribute("name","new");

答案 1 :(得分:1)

var sel = document.getElementById("old");  //Reference the element
sel.id = "new";  //set the id

答案 2 :(得分:1)

试试这个:

 document.getElementById("old").name = 'NewName';
 alert(document.getElementById("old").name);
 document.getElementById("old").id = 'Newid';
 alert(document.getElementById("Newid").id);

它为我工作。

答案 3 :(得分:1)

我觉得这里有一些不雅观的东西;如果你告诉我们更多,我们就能说出“正确的方法”。如果您仍然有充分的理由去做您正在做的事情,那么只需调用您已完成所有更改的代码片段。它将更新行中的所有元素以获得正确的编号。

var formElements = document.getElementById('table').getElementsByClassName('toUpdate');
for (var i=0; i<formElements.length; i++) {
    var e = formElements[i];
    e.id = 'new'+i;
}

如果您不想为每个版本添加class="toUpdate ...",则会有相当多的变体。例如,您使用的是常规表单元素,您可以迭代<form>的元素。或者您可以遍历名称或ID上的所有元素和模式匹配。或者,如果您使用javascript通过算法生成此函数,则可以在将数据添加到DOM的同时将每个元素添加到数组中,以供日后使用(如此更新)。