Javascript 访问表td中的html select元素
我有以下html代码片段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
<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;”。这可能是不必要的,因为您有一个小部分,可能不会有多个同名部分,但它可以减轻一些额外的处理。