示例:
<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。)
感谢。
答案 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的同时将每个元素添加到数组中,以供日后使用(如此更新)。