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

Triggered background color change doesn't fire

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

Fiddle

脚本

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

getElementsByTagName returns 数组。

您可以像这样遍历数组,使每个数组项的背景变为绿色:

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

jQuery 示例:

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