2010-09-17 56 views
2

警報顯示,但價值不變....爲什麼?如何在運行時更改標籤值?

<html> 
    <head> 
     <title>Test EuDock</title> 
    </head> 
    <body > 
     <label id="labelID">test</label> 
     <script type="text/javascript" > 

      document.onkeyup = KeyCheck; 

      function KeyCheck(e) { 

       var KeyID = (window.event) ? event.keyCode : e.keyCode; 

       switch(KeyID) 
       { 
        case 39: // right arrow 
         document.getElementById('labelID').value="BLZ"; 
         alert('ok'); 
         break; 
       } 

      } 
     </script> 
    </body> 
</html> 

回答

7

只有input元素有財產value。你想innerHTML

document.getElementById('labelID').innerHTML="BLZ"; 

innerHTMLsupported by all browsers的唯一屬性。

innerText is not supported by FirefoxtextContent is not supported by <= IE8

+0

正如我的html現在說的:BLZ! (「好吧!」,在葡萄牙語中)=) – 2010-09-17 18:04:16

+0

@Tom:好,它現在可以工作:)順便說一句,在德語中,BLZ是* Bankleitzahl *的縮寫,意思是*銀行識別號碼*:o) – 2010-09-17 18:08:54

+0

我有同樣的問題在問題中,但是當我使用innerHTML時,它不會替換標籤的文本,它只是在已放置好的文本前添加我想要的消息 – 2013-12-13 18:41:30

0

我不認爲value是在HTML元素的DOM中定義的屬性。嘗試分配給.innerHTML,我想你會得到你想要的結果。

0

試試這個:

document.getElementById('labelID').innerText ="BLZ"; 
0

label元素不具有價值屬性。改爲使用document.getElementById('labelID').innerHTML="BLZ";

+0

這就是費利克斯在你出發前15分鐘所說的......; – 2010-09-17 18:27:35

+0

雅,我一發布,就意識到了。那時我正在用Firebug測試。 :) – Kangkan 2010-09-18 14:57:48