[英]accessing html select element which is inside table td
I have the following html snippet 我有以下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>
When i change something on , then i would like to get a handle to and do some operation on it. 当我在上更改某些内容时,我想对其进行处理。 How do i get a handle to in javascript?
如何获取JavaScript的句柄?
function closedChanged(object)
{
try
{
var parent=object.parentNode.parentNode;
var day = parent.getElementsByName("day")[0];
}
catch(e)
{
alert(e);
}
}
Here i am getting error saying that HTMLTableRowElement does not have method called getElementsByName. 在这里,我收到错误消息,说HTMLTableRowElement没有名为getElementsByName的方法。 Any other way?
还有其他方法吗?
对于此特定问题,您不应按其名称访问DOM元素,而应按其ID访问它们。
foo = document.getElementById("someID"); //Its unique
You could also try getting all select elements, looping through them and checking their name: 您也可以尝试获取所有选择元素,循环遍历它们并检查其名称:
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
}
}
I'm sure it's similar to what document.getElementsByName() does but not searching by tag first. 我确定它类似于document.getElementsByName()所做的事情,但不是先按标记搜索。
The getElementsByName() method accesses all elements with the specified name. getElementsByName()方法访问具有指定名称的所有元素。
As you given different name for each select you can access it directly. 由于您为每个选择指定了不同的名称,因此可以直接访问它。
var x=document.getElementsByName("day");
no need of parent 不需要父母
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.