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

如何使用JavaScript更改HTML元素的ID?,javascript,html,cross-browser,Javascript,Html,Cross Browser,我正在用JavaScript修改HTMLdiv元素客户端的ID。以下代码在Internet Explorer中正常工作,但在Firefox/2.0.0.20中不正常。它在最新版本的Firefox中也能工作 document.getElementById('one').id = 'two'; 谁能告诉我: 为什么这在FireFox中不起作用 如何在FireFox中实现这一点 为了澄清,我正在更改元素ID,以引用外部样式表中的不同样式。这种风格适用于IE,但不适用于FF。它在Firefox中也适用

我正在用JavaScript修改HTML
div
元素客户端的ID。以下代码在Internet Explorer中正常工作,但在Firefox/2.0.0.20中不正常。它在最新版本的Firefox中也能工作

document.getElementById('one').id = 'two';
谁能告诉我:

  • 为什么这在FireFox中不起作用
  • 如何在FireFox中实现这一点
  • 为了澄清,我正在更改元素ID,以引用外部样式表中的不同样式。这种风格适用于IE,但不适用于FF。

    它在Firefox中也适用(包括
    2.0.0.20
    )。请参阅(将
    /edit
    添加到要编辑的url):

    一个

    第一次单击将
    id
    更改为
    “两个”
    ,第二次单击错误,因为现在找不到具有
    id=“一个”
    的元素


    也许您已经有了另一个使用
    id=“two”
    (仅供参考)的元素。

    似乎适合我:

    <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>
    
    
    #猴子{颜色:蓝色}
    #猿{颜色:紫色}
    水果
    函数changeid()
    {
    var e=document.getElementById(“猴子”);
    e、 id=“ape”;
    }
    
    预期的行为是改变“水果”一词的颜色


    调用例程时,文档可能未完全加载?

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

    例如:

    <div id = 'One' onclick = "One.id = 'Two'; return false;">One</div>
    
    1
    
    你可以在这里看到:


    通过Mozilla Firefox 22和Google Chrome 60.0测试,Firefox中应该可以找到-什么让你认为它不可行?这在Firefox中对我很有效,你有JavaScript错误吗?你能发布更多的代码示例吗?下载Firebug,看看控制台windowWorks在FF 3.5.4、WinXP SP 3、
    Mozilla/5.0(Windows;U;Windows NT 5.1;en GB;rv:1.9.1.4)Gecko/20091007 Firefox/3.5.4(.NET CLR 3.5.30729)上抛出了什么错误。
    你到底什么时候这样做的?您是否确保DOM已首先准备好?请尝试window.onload处理程序或将脚本放在所述元素之后。
    <div id = 'One' onclick = "One.id = 'Two'; return false;">One</div>