2014-04-07 58 views
0

即時嘗試設置td id =「red」字段的背景顏色,但它只設置第一個,最新的問題?我認爲我將不得不設置不同的名稱?Javascript背景表

這裏是我的代碼:

<table id="theTable"> 

    <tr> 

    <td id= "red">0 - some txt</td> 

    <td>1 - some txt</td> 

    <td>2 - some txt</td> 

    </tr> 

    <tr> 

    <td id = "red">3 - some txt</td> 

    <td>4 - some txt</td> 

    <td>5 - some txt</td> 

    </tr> 

    <tr> 

    <td><button type="button" onclick="funcion('red')">Try it</button></td> 


    </tr> 

</table> 

<script> 

function funcion (id) { 

    document.getElementById('red').style.backgroundColor = "red"; 

} 


</script> 

</html> 

預先感謝您!

+0

ID必須在文檔範圍內是唯一的。 'getElementById'應該只返回一個元素。 – Bergi

+1

你需要使用類而不是ID來完成這樣的工作。 – briosheje

+0

有沒有想過爲什麼他們稱之爲「getElementById」而不是「getElementsById」? – j08691

回答

1

由於標識必須是唯一的你應該使用類和這個JavaScript:

function funcion(id) { 
    var tds = document.getElementsByClassName(id); 
    for (var i = 0; i < tds.length; i++) { 
     tds[i].style.backgroundColor = "red"; 
    } 
} 

jsFiddle example

HTML

<table id="theTable"> 
    <tr> 
     <td class="red">0 - some txt</td> 
     <td>1 - some txt</td> 
     <td>2 - some txt</td> 
    </tr> 
    <tr> 
     <td class="red">3 - some txt</td> 
     <td>4 - some txt</td> 
     <td>5 - some txt</td> 
    </tr> 
    <tr> 
     <td> 
      <button type="button" onclick="funcion('red')">Try it</button> 
     </td> 
    </tr> 
</table> 
+0

噢,只是在你出現之後做了幾秒鐘:http://jsfiddle.net/KMMFM/:P做得很好! – briosheje

+0

謝謝!現在我明白了:) – Coluh

0

我會建議使用類,ID是意思是獨特的,因此函數只返回第一次出現。

的代碼會是這個樣子:

<table id="theTable"> 
    <tr> 
     <td class="red">some text</td> 
     <td>some text</td> 
     <td>some text</td> 
    </tr> 
    <tr> 
     <td class="red">some text</td> 
     <td>some text</td> 
     <td>some text</td> 
    </tr> 
    <tr> 
     <td class="red">some text</td> 
     <td>some text</td> 
     <td>some text</td> 
    </tr> 
</table> 

和功能:

function makeThemRed() 
{ 
    var redElements = document.getElementsByClassName("red"); 

    for(var i = 0; i < redElements.length; i++) 
    { 
     redElements[i].style.backgroundColor = "red"; 
    } 
} 

,因爲你需要通過的結果,這是最好的一個循環完成迭代。

+0

非常感謝你的代碼! – Coluh

+0

不客氣! :) – Isti115