2009-10-30 126 views
24

我正在使用JavaScript修改HTML div元素客戶端的ID。以下代碼在Internet Explorer中正常工作,但不在Firefox/2.0.0.20中。它可以在更新版本的Firefox中使用。如何使用JavaScript更改HTML元素的ID?

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

誰能告訴我:

  1. 爲什麼這不工作在Firefox。
  2. 如何使這個工作在FireFox。

爲了澄清,我將更改元素ID以引用外部樣式表中的不同樣式。該樣式適用於IE,但不適用於FF。

+2

測試應該在Firefox中找到工作 - 是什麼讓你覺得它不是? – Greg 2009-10-30 14:58:03

+1

這適用於我在Firefox中,你是否收到JavaScript錯誤?你能發表更多的代碼示例嗎? – 2009-10-30 14:58:17

+0

下載Firebug並查看控制檯窗口中出現的錯誤 – 2009-10-30 15:00:17

回答

33

它可以在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"的元素現在無法找到!

也許你有另一個元素已經id="two"(FYI you can't have more than one element with the same id)。

+1

+1上傳示例 – Seb 2009-10-30 15:00:03

7

這似乎爲我工作:

<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> 

預期的行爲是改變單詞「果」的顏色。

當您調用例程時,您的文檔可能沒有完全加載?

+0

請參閱我最近的編輯。 – Tesseract 2009-10-30 15:10:20

3

您可以修改id,而不必使用getElementById

例子:

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

你可以在這裏看到:http://jsbin.com/elikaj/1/

使用Mozilla Firefox 22和谷歌Chrome 60.0