访问表td内的html select元素

时间:2012-04-11 20:19:35

标签: javascript html

我有以下html代码段

<table>
    <tr>
        <td><select name="day">
        </select></td>
        <td><select name="time">
        </select></td>
        <td><select name="closed" onchange="dosomething(this)">
        </select></td>
    </tr>
</table>

当我改变某些东西时,我想得到一个句柄并对其进行一些操作。我如何获得javascript的句柄?

function closedChanged(object)
{
    try
    {
        var parent=object.parentNode.parentNode;
        var day = parent.getElementsByName("day")[0];
    }
    catch(e)
    {
        alert(e);
    }
}

这里我收到错误,说HTMLTableRowElement没有名为getElementsByName的方法。还有别的吗?

3 个答案:

答案 0 :(得分:2)

对于这个特定问题,您不应该按名称访问DOM元素,而应该通过其ID访问它们。

foo = document.getElementById("someID"); //Its unique

答案 1 :(得分:1)

你也可以尝试获取所有选择元素,循环遍历它们并检查它们的名称:

var parent = obj.parentNode.parentNode;
var selects = parent.getElementsByTagName("select");
for (var i = 0; i < selects.length; i++) {
    if (selects[i].name == "day") {
        // selects[i] is the target
    }
}

我确定它类似于document.getElementsByName()所做的,但不是先按标签搜索。

答案 2 :(得分:0)

getElementsByName()方法访问具有指定名称的所有元素。

当您为每个选择指定不同的名称时,您可以直接访问它。

var x=document.getElementsByName("day");

不需要父母