获得最接近的元素,我有两个要素:通过ID
<input a>
<input b onclick="...">
当单击B,我想访问和操纵它的一些数据。 A没有全局唯一的名称,所以document.getElementsByName已经失效。纵观事件对象,我认为event.target.parentNode会有一些像getElementsByName这样的函数,但是这似乎不是<td> s的情况。有没有简单的方法来做到这一点?
获得最接近的元素,我有两个要素:通过ID
<input a>
<input b onclick="...">
当单击B,我想访问和操纵它的一些数据。 A没有全局唯一的名称,所以document.getElementsByName已经失效。纵观事件对象,我认为event.target.parentNode会有一些像getElementsByName这样的函数,但是这似乎不是<td> s的情况。有没有简单的方法来做到这一点?
如果a
和b
是彼此相邻并具有相同的父,你可以使用的b
的prevSibling
属性查找a
。
您应该能够从event object中找到被点击的元素。根据您的浏览器,您可能需要e.target
或e.srcElement
。下面的代码是从这个w3schools example:
function whichElement(e) {
var targ;
if (!e) var e = window.event;
if (e.target) {
targ=e.target;
} else if (e.srcElement) {
targ = e.srcElement;
}
if (targ.nodeType==3) { // defeat Safari bug
targ = targ.parentNode;
}
var tname;
tname = targ.tagName;
alert("You clicked on a " + tname + " element.");
}
然后你可以使用nextSibling
和prevSibling
DOM遍历功能。 Some more information here。又一个w3schools参考XML DOM Nodes。
让您的普通香草JavaScript落后。获取JQuery - 它将为您节省大量时间。