2009-09-12 92 views
1

這是正確的方法嗎?使用document.getElementById更改「id =」的值

<a id="load" href="#" class="btn load" onclick="request(this); $('#load').fadeOut(2000)">add</a> 

<a href="#" id="test" onClick="alert('TEST!')">here</a> 

<script language="javascript"> 
var requests = 2; 

function request(self) 
{if(self.href != "#") 
requests -= 1; 

if(requests === 0) 
document.getElementById("test").id= "nextstep";} 
</script> 

我想ID = 「測試」 更改爲ID = 「NEXTSTEP」 如果請求= 0

+0

您正在使用哪種瀏覽器? – 2009-09-12 00:43:33

+0

你正在使用哪種doctype? – 2009-09-12 00:44:14

+0

Safari 4,正如我在其他人測試過的,這不起作用? – Homework 2009-09-12 00:44:23

回答

4

你可以嘗試:

document.getElementById('test').setAttribute('id', 'nextstep'); 
+0

這根本不起作用。 – Homework 2009-09-12 00:42:53

+0

不需要使用'setAttribute'(除非我們在談論XML DOM)'element.id ='nextstep''在這種情況下應該足夠了。 – kangax 2009-09-12 02:51:31

1

這正是你如何」 d去做吧,只要你把它包裝在腳本標籤中...

<script language="javascript" type="text/javascript"> 
if(requests === 0){ 
    document.getElementById('test').id = "nextstep"; 
} 
</script> 

如果你試試荷蘭國際集團來觸發此對錨的點擊,那麼你會使用:

<script language="javascript" type="text/javascript"> 
function changeID(){ 
    if(requests === 0){ 
     document.getElementById('test').id = "nextstep"; 
     alert('TEST!'); 
    } 
} 
</script> 

<a href="#" id="test" onclick="changeID()">Test</a> 

編輯:嗯,你我這貼後改變你提問的內容......

+0

是的,你明白我現在想做什麼嗎?哈哈 – Homework 2009-09-12 00:47:03

1

您需要使用'setAttribute'來改變錨標籤的ID。

你已經得到了getElementById('test')部分,但只是拋出「.setAttribute('id','nextstep');」

希望有幫助!

+0

爲什麼不想工作?哈 – Homework 2009-09-12 00:49:55

1

如果(self.href!= 「#」)

有你的問題。鏈接hrefs是由瀏覽器規範化的,因此頁面'http://www.example.com/'上的鏈接'#'具有'http://www.example.com/#'的href屬性,並且與條件不匹配。

避免使用名稱'self',因爲它與全局對象(又名'window')的名稱衝突。您可以通過從JavaScript的分配處理避免「自我」的笨拙傳:

document.getElementById('load').onclick= request; 

代替onclick屬性,那麼你可以使用「這」在請求()。 request()也應該return false;停止正在遵循的鏈接(使瀏覽器滾動到頂部)。更好的辦法是使用<button>(或<input type="button">),因爲它是一個動作按鈕,而不是可以在新窗口或書籤中打開的鏈接。 (你總是可以使用CSS來使它看起來不像一個按鈕。)

不要對HTML使用setAttribute(),它在IE中有問題與此用法無關。設置element.id已經很好了。

但是,這一切似乎都是一種奇怪的方式,無論如何都要去做你想做的事情。

相關問題