2011-06-28 11 views
1

ドロップダウンリストで選択した項目が変更された場合、表のセルの背景色を変更しようとしています。私はテキストボックスのために同じJavaScriptを使用し、それは正常に動作します。火かき棒では、selectから呼び出されると "cell"は未定義です。私はちょうどselectオブジェクトを渡すと、私は(要件を満たす可能性があるの選択背景色を変更することができます(「本」ではなく「this.parentnode」の使用)javascriptでselect要素のparentnodeを取得する方法

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

ここ

は私のスクリプト/ htmlです)、私は親ノードを取得する方法を理解することはできません。

おかげ

答えて

5

それはparentNodeです(ケーシングに注意してください)

+1

私はそれを確認したと断言できました。ありがとう。 – monkeypushbutton

+0

@monkeypushbutton: 'select'ではなく、' input'で実際にそれを得ました! :) – Town

+0

ええ、それはなぜそれが1つではなく他のものではなく働いたかを説明します。これは通常、JSが動作していないときにチェックする最初のことです(誤ったケース)。 – monkeypushbutton

2

私は(私はそれをいじることによってそれを固定している場合があります)あなたのコードが動作していたと信じています。それはあなたのケーシングだったようです。参照してください:http://jsfiddle.net/kaleb/y6UuL/

あなたはちょうど背景色を見ることができなかったようです。あなたのセルにパディングを追加しました。

+0

ありがとう。非常にクールなツール(jsfiddle.netサイト)。 – monkeypushbutton

関連する問題