2010-09-17 55 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