通过ID获取最近的元素
时间:2020-03-05 18:50:28 来源:igfitidea点击:
我有两个要素:
<input a> <input b onclick="...">
单击b时,我要访问a并处理其某些数据。 A没有全局唯一的名称,因此document.getElementsByName不可用。调查事件对象,我认为event.target.parentNode将具有一些类似于getElementsByName的功能,但<td>似乎并非如此。有没有简单的方法可以做到这一点?
解决方案
回答
如果a和b彼此相邻并且具有相同的父对象,则可以使用b的prevSibling属性来查找a。
回答
- 我们应该能够找到从事件对象中单击的元素。根据浏览器,我们可能需要
e.target
或者e.srcElement
。下面的代码来自此w3schools示例:
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遍历函数。一些更多的信息在这里。再一次是XML DOM节点的w3schools参考。
回答
留下普通的JavaScript。获取JQuery-它将节省大量时间。
http://docs.jquery.com/Selectors
回答
原型还具有不错的功能,可以在DOM中移动。在示例中,以下内容可以解决问题:
b.up().down('a')
如果在该级别上有多个元素,则可以使用CSS选择器来准确指定所需的元素