ドロップダウンで選択した項目が変更された場合、テーブル セルの背景色を変更しようとしています。テキストボックスにも同じ JavaScript を使用していますが、問題なく動作します。firebug では、select から呼び出されたときに「cell」が定義されていません。
これが私のscript/htmlです
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function changeText(cell, shown, hidden)
{
if (shown == hidden)
{
cell.style.backgroundColor="red";
}
else
{
cell.style.backgroundColor="green";
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<table cellpadding="5">
<tr>
<td>
Cell 1
</td>
<td>
<select id="catBlah" OnChange="changeText(this.parentnode, this.options[this.selectedIndex].value, '789');">
<option value=""></option>
<option selected="selected" value="789">Item 1</option>
<option value="000">Item 2</option>
<option value="456">Item 3</option>
<option value="123">Item 4</option>
</select>
</td>
</tr>
<tr>
<td>
<input type="text" value="blue" onchange="changeText(this.parentNode, this.value, 'blue');" />
</td>
<td>
Cell 4
</td>
</tr>
</table>
</form>
</body>
</html>
select オブジェクトを (「this.parentnode」の代わりに「this」を使用して) 渡すだけで、select の背景色を変更できます (要件を満たす可能性があります) が、親ノードを取得する方法がわかりません。
ありがとう