idは基本的に個別のものでなければならないので、重複して同じidを設けるのは不可です。
かわりにclassを利用して、class="t1"と指定することにしましょう。
(class="t1"でないものの背景色がかわりません)
オプションをセットする部分をオリジナルからまったく変えてしまいましたが…
<html>
<head>
<script language="JavaScript">
<!--
window.onload = function(){
var col, colN, count, i, elm;
col = 'white,gray,black,silver,maroon,red,purple,fuchsia,green,lime,olive,yellow,navy,blue,teal,aqua'.split(',');
colN = '白色,灰色,黒色,銀色,茶色,赤色,紫色,ピンク,緑色,ライム,オリーブ,黄色,紺色,青色,青緑,水色'.split(',');
elm = document.getElementById('sel1');
count = col.length>colN.length?colN.length:col.length;
for (i=0; i<count; i++) {
elm.options[i] = new Option(colN[i],col[i]);
elm.options[i].style.backgroundColor = col[i];
}
}
function BgChange(e) {
var col = e.options[e.selectedIndex].value;
var tbl = document.getElementsByTagName('TABLE');
for (var i=0; i<tbl.length; i++){
if (tbl[i].className=='t1') tbl[i].style.backgroundColor=col;
}
}
//-->
</script>
</head>
<body>
<select name="sele1" id="sel1" onChange="BgChange(this);">
</select>
<p>
<table width="200" border="1" cellspacing="0" cellpadding="0" height="100" class="t1">
<tr>
<td align="center" width="100">no.1</td>
<td align="center" width="100"> </td>
</tr>
</table>
<br>
<table width="200" border="1" cellspacing="0" cellpadding="0" height="100">
<tr>
<td align="center" width="100">no.2</td>
<td align="center" width="100"> </td>
</tr>
</table>
<br>
<table width="200" border="1" cellspacing="0" cellpadding="0" height="100" class="t1">
<tr>
<td align="center" width="100">no.3</td>
<td align="center" width="100"> </td>
</tr>
</table>
</body>
</html>
お礼
お手を煩わせてすみません。 理想通りの表示になりました、有り難う御座いました。