1

すべての行にドロップダウン リストを含む HTML テーブルがあります。ドロップダウンリストの値を変更するたびに、その行の背景を変更して、ドロップダウンリストに何か変更があることを示したいです。

コードは次のとおりです。

<table id="table1">
    <tr>
        <td>Value</td>
        <td>
            <Select onchange="myFunction(this)">
            <option value="1">1</option>
            <option value='2">2</option></select>
        </td>
    </tr>
</table>

<script type="text/javascript">
    function myFunction(a) {
        var cells = document.getElementById("table1").rows[a].cells;
        for (var i = 0, len = cells.length; i < len; ++i) {
            cells[i].style.backgroundColor = "yellow";
        }
    }
</script>

まだ機能していません。どうすれば修正できますか? ありがとう!

4

3 に答える 3

1

jquery を使用している場合は、関数を次のように変更します。

<script type="text/javascript">
    function myFunction(a)
    {
       $(a).parent().parent().css("background-color", "yellow");
    }
    </script>

プレーンな JavaScript を使用する場合は、次のようになります。

 <script type="text/javascript">
        function myFunction(a)
        {
           a.parentNode.parentNode.style.backgroundColor = "yellow";
        }
        </script>
于 2013-08-28T18:17:52.577 に答える
0
<select onchange="this.parentNode.parentNode.style.backgroundColor='yellow';"></select>
于 2013-08-28T18:21:22.313 に答える
0

関数を次のように変更します。

function myFunction(a)
{
    a.parentNode.parentNode.style.backgroundColor = "yellow";
}

次に、select にある小さなタイプミスを修正してください (二重引用符の代わりに単一引用符を使用します)。

<table id="table1">
    <tr>
    <td>Value</td>
    <td><select onchange="myFunction(this);">
    <option value="1">1</option>
    <option value="2">2</option>
        </select>
    </td>
    </tr>
</table>

http://jsfiddle.net/hescano/GkvA9/

于 2013-08-28T18:21:33.250 に答える