Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问表td中的html select元素_Javascript_Html - Fatal编程技术网

Javascript 访问表td中的html select元素

Javascript 访问表td中的html select元素,javascript,html,Javascript,Html,我有以下html代码片段 <table> <tr> <td><select name="day"> </select></td> <td><select name="time"> </select></td> <td><select name="closed" onchan

我有以下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>
在这里,我得到的错误是HTMLTableRowElement没有名为getElementsByName的方法。还有其他方法吗?

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

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

var x=document.getElementsByName("day");
不需要父级

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

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

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

不需要父元素

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

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

对于这个特殊的问题,您不应该通过名称访问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
    }
}
var parent=obj.parentNode.parentNode;
var selects=parent.getElementsByTagName(“选择”);
对于(变量i=0;i

我确信它与document.getElementsByName()类似,但不是先按标记搜索。

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

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
    }
}
var parent=obj.parentNode.parentNode;
var selects=parent.getElementsByTagName(“选择”);
对于(变量i=0;i

我确信它与document.getElementsByName()类似,但不是先按标记搜索。

您的问题似乎有点混乱。这看起来您得到的是tr元素而不是select元素。我认为使用jquery也会更好。现在,你到底想做什么?你的问题似乎有点混乱。这看起来您得到的是tr元素而不是select元素。我认为使用jquery也会更好。现在,你到底想做什么?很高兴成功了!只要记住,如果有多个名为“day”(或其他名称)的元素,for循环不会在找到第一个元素时停止。如果希望它在第一个找到的位置停止搜索,请在If语句的末尾加上“break;”。这可能是不必要的,因为您有一个小部分,可能不会有多个同名部分,但它可以减轻一些额外的处理。很高兴它工作了!只要记住,如果有多个名为“day”(或其他名称)的元素,for循环不会在找到第一个元素时停止。如果希望它在第一个找到的位置停止搜索,请在If语句的末尾加上“break;”。这可能是不必要的,因为您有一个小部分,可能不会有多个同名部分,但它可以减轻一些额外的处理。