访问位于表 TD 内的 HTML 选择元素

accessing html select element which is inside table td

本文关键字:HTML 选择 元素 内的 TD 于表 访问      更新时间:2023-09-26

我有以下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的方法。还有其他方法吗?

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

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

您还可以尝试获取所有选择元素,循环访问它们并检查它们的名称:

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()所做的,但不首先按标签搜索。

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

由于您为每个选择指定了不同的名称,因此您可以直接访问它。

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

无需父母