2012-01-04 64 views
0

我在這裏用document.getElementById()設置有一些困難。innerHTML更改文本

<div id="display"> 
     <p></span></p> 
     <p>Inputs:<br /><span style="font-size:20pt"></p> 
     <a id="btn0">&bull; Input 1</a><br> 
     <a id="btn1">&bull; Input 2</a><br> 
     <a id="btn2">&bull; Input 3</a><br> 
     <a id="btn3">&bull; Input 4</a><br> 
     <a id="btn4">&bull; Input 5</a><br> 
     <a id="btn5">&bull; Input 6</a><br> 
     <a id="btn6">&bull; Input 7</a><br> 
     <a id="btn7">&bull; Input 8</a><br> 
     <a id="btn8">&bull; Input 9</a><br> 
     <a id="btn9">&bull; Input 10</a><br> 
     <a id="btn10">&bull; Input 11</a><br> 
     <a id="btn11">&bull; Input 12</a><br> 
     <a id="btn12">&bull; Input 13</a><br> 
     <a id="btn13">&bull; Input 14</a><br> 
     <a id="btn14">&bull; Input 15</a><br> 
     <a id="btn15">&bull; Input 16</a><br> 
     </span> </p> </div> 

,這是我的腳本,它正在改變這些項目:

<script type="text/javascript"> 
// Parses the xmlResponse from status.xml and updates the status box 
function updateStatus(xmlData) { 
    // Check if a timeout occurred 
    if(!xmlData) 
    { 
     document.getElementById('display').style.display = 'none'; 
     document.getElementById('loading').style.display = 'inline'; 
     return; 
    } 

    // Make sure we're displaying the status display 
    document.getElementById('loading').style.display = 'none'; 
    document.getElementById('display').style.display = 'inline'; 

    // Loop over all the LEDs 
    for(i = 0; i < 16; i++) { 
     if(getXMLValue(xmlData, 'input'+i) == '1') 
      document.getElementById('btn' + i).style.color = '#d00'; 
      document.getElementById('btn' + i).innerHTML = '&bull; WARNING'; 
     else 
      document.getElementById('btn' + i).style.color = '#090'; 
    } 

    // Loop over all the buttons 

    // Update the POT value 
    document.getElementById('analogue0').innerHTML =getXMLValue(xmlData,'analogue0'); 
    val=0; 
    for(i = 0; i < 10; i++) { 
    val=val+10; 
    if(getXMLValue(xmlData, 'analogue0') >val) 
     document.getElementById('pot' + i).style.color = '#090'; 
    else 
     document.getElementById('pot' + i).style.color = '#fff'; 
    } 

    // Update the POT value 2 
    document.getElementById('analogue1').innerHTML =getXMLValue(xmlData,'analogue1'); 
    val=0; 
    for(i = 0; i < 10; i++) { 
    val=val+10; 
    if(getXMLValue(xmlData, 'analogue1') >val) 
     document.getElementById('1pot' + i).style.color = '#090'; 
    else 
     document.getElementById('1pot' + i).style.color = '#fff'; 
    } 


} 
setTimeout("newAJAXCommand('status.xml', updateStatus, true)",500); 
</script> 
試圖改變一個標籤之間的文字時,我遇到的問題

。 文本的顏色變化很好,但是當涉及到更改文本時,什麼也沒有發生。我讀過這個,但無法找到任何在谷歌上看起來像這樣的東西。

+0

你調試的代碼?有沒有引發Javascript錯誤? – 2012-01-04 13:27:00

+0

'getXMLValue'是否返回了所需的數據? – 2012-01-04 13:27:07

回答

1

如果您有多個語句要在if條件返回true時執行,則需要將它們放在大括號中。

變化

for(i = 0; i < 16; i++) { 
    if(getXMLValue(xmlData, 'input'+i) == '1') 
     document.getElementById('btn' + i).style.color = '#d00'; 
     document.getElementById('btn' + i).innerHTML = '&bull; WARNING'; 
    else 
     document.getElementById('btn' + i).style.color = '#090'; 
} 

for(i = 0; i < 16; i++) { 
    if(getXMLValue(xmlData, 'input'+i) == '1') { 
     document.getElementById('btn' + i).style.color = '#d00'; 
     document.getElementById('btn' + i).innerHTML = '&bull; WARNING'; 
    } 
    else 
     document.getElementById('btn' + i).style.color = '#090'; 
}