触发的背景颜色变化不会触发

时间:2015-02-18 00:24:45

标签: javascript html dom

为什么这个getElementsByTagName触发器不起作用,但getElementById会起作用。

Fiddle

SCRIPT

<script>
function trigger1()
  {document.getElementsByTagName("td").style.backgroundColor="green";}
function trigger2() {document.getElementById("apple").style.backgroundColor="green";}
</script>

HTML

<table width="90" border="1">
<tr><td>a</td><td>b</td></tr>
<tr><td>d</td><td id="apple">e</td></tr>
</table><br>
<input type="button" onclick="trigger1()" value="change TD backgrounds">
    <br><br>
<input type="button" onclick="trigger2()" value="Change E background">

1 个答案:

答案 0 :(得分:1)

getElementsByTagName返回一个数组。

您可以通过遍历数组来使每个数组项的背景变为绿色:

tdElements = document.getElementsByTagName("td");
for(var key in tdElements) { tdElements[key].style.backgroundColor="green"; }

jQuery示例:

$('td').each(function() { $(this).css('background-color', 'green'); });