通过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.");
}
  • 然后,我们可以使用nextSiblingprevSiblingDOM遍历函数。一些更多的信息在这里。再一次是XML DOM节点的w3schools参考。

回答

留下普通的JavaScript。获取JQuery-它将节省大量时间。

http://docs.jquery.com/Selectors

回答

原型还具有不错的功能,可以在DOM中移动。在示例中,以下内容可以解决问题:

b.up().down('a')

如果在该级别上有多个元素,则可以使用CSS选择器来准确指定所需的元素