2012-01-04 11 views
0

javascriptを使用してdocument.getElementById()設定で問題が発生しています。 Aタグの間のテキストを変更しようとしたとき、私は問題を抱えているinnerHTMLテキストを変更する

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

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

が、これはこれらの項目を変更している私のスクリプトです。 テキストの色はうまく変わりますが、テキストの変更については何も起こりません。私はこれを読んだことがあるが、Googleではこのように見えるものは見つからない。

+0

には、あなたは、コードをデバッグしていますか? Javascriptエラーがスローされていますか? –

+0

'getXMLValue'は必要なデータを返しましたか? –

答えて

1

ifの条件が真を返すときに実行したいステートメントが複数ある場合は、それらを中括弧で囲む必要があります。

変更

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'; 
} 
関連する問題