如何使用 JavaScript 更改 HTML 元素的 ID?

IT技术 javascript html cross-browser
2021-02-28 14:44:39

我正在div使用 JavaScript修改 HTML元素客户端的 ID 以下代码在 Internet Explorer 中运行正常,但在 Firefox/2.0.0.20 中不起作用。它确实适用于较新版本的 Firefox。

document.getElementById('one').id = 'two';

谁能告诉我:

  1. 为什么这在 FireFox 中不起作用。
  2. 如何在 FireFox 中完成这项工作。

为了澄清起见,我正在更改元素 ID 以引用外部样式表中的不同样式。该样式适用于 IE,但不适用于 FF。

3个回答

它确实适用于 Firefox(包括2.0.0.20)。请参阅http://jsbin.com/akili(添加/edit到 url 以进行编辑):

<p id="one">One</p>
<a href="#" onclick="document.getElementById('one').id = 'two'; return false">Link2</a>

第一次单击更改id"two",第二次单击错误,因为id="one"无法找到带有now的元素

也许你有另一个元素已经id="two"(仅供参考,你不能有相同的多个元素id)。

这似乎对我有用:

<html>
<head><style>
#monkey {color:blue}
#ape {color:purple}
</style></head>
<body>
<span id="monkey" onclick="changeid()">
fruit
</span>
<script>
function changeid ()
{
var e = document.getElementById("monkey");
e.id = "ape";
}
</script>
</body>
</html>

预期的行为是改变单词“fruit”的颜色。

也许当您调用例程时,您的文档未完全加载?

您可以修改而id无需使用getElementById

例子:

<div id = 'One' onclick = "One.id = 'Two'; return false;">One</div>

你可以在这里看到它:http : //jsbin.com/elikaj/1/

使用 Mozilla Firefox 22 和 Google Chrome 60.0 进行测试