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";
}

然后确保你修正了你在选择上的一个小错字(单引号而不是双引号):

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