プロが教える店舗&オフィスのセキュリティ対策術

3行3列のtableで各セルにマウスカーソルをのせた時に
そのセルの列すべての背景色を変えるJavaスクリプトを
作成したのですが、うまく動作しません。
どこか間違っているでしょうか。
(たとえば、2-2のセルにマウスカーソルをのせると
 1-2、2-2、3-2のセルの背景色をかえるスクリプトです)

●Java
function onColor(col) {
document.all[col].bgColor = '#00ffff';
}
function outColor(col) {
document.all[col].bgColor = '#ffffff';
}

●HTML
<TABLE BORDER="1" BGCOLOR="#ffffff" cellpadding="0" cellspacing="0">
<colgroup id="a1" span="1" width="25" align="center">
<colgroup id="a2" span="1" width="25" align="center">
<colgroup id="a3" span="1" width="25" align="center">

<tr align="center">
<td onMouseOver="javascript: onColor('a1');" onMouseOut="javascript: outColor('a1');">1-1</td>
<td onMouseOver="javascript: onColor('a2');" onMouseOut="javascript: outColor('a2');">1-2</td>
<td onMouseOver="javascript: onColor('a3');" onMouseOut="javascript: outColor('a3');">1-3</td>
</tr>

<tr align="center">
<td onMouseOver="javascript: onColor('a1');" onMouseOut="javascript: outColor('a1');">2-1</td>
<td onMouseOver="javascript: onColor('a2');" onMouseOut="javascript: outColor('a2');">2-2</td>
<td onMouseOver="javascript: onColor('a3');" onMouseOut="javascript: outColor('a3');">2-3</td>
</tr>

<tr align="center">
<td onMouseOver="javascript: onColor('a1');" onMouseOut="javascript: outColor('a1');">3-1</td>
<td onMouseOver="javascript: onColor('a2');" onMouseOut="javascript: outColor('a2');">3-2</td>
<td onMouseOver="javascript: onColor('a3');" onMouseOut="javascript: outColor('a3');">3-3</td>
</tr>
</TABLE>

A 回答 (1件)

document.allはやめてdocument.getElementByIdでやりましょう。


またbgColorではなくstyleのbackgroundColorをかえてやりましょう

function onColor(col) {
document.getElementById(col).style.backgroundColor = '#00ffff';
}
function outColor(col) {
document.getElementById(col).style.backgroundColor = '#ffffff';
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!