题
我有两个要素:
<input a>
<input b onclick="...">
当单击 b 时,我想访问 a 并操作它的一些数据。A 没有全局唯一的名称,因此 document.getElementsByName 不可用。查看事件对象,我认为 event.target.parentNode 会有一些像 getElementsByName 这样的函数,但 <td> 的情况似乎并非如此。有什么简单的方法可以做到这一点吗?
解决方案
如果 a
和 b
彼此相邻且具有相同的父级,您可以使用 prevSibling
的财产 b
找到 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 遍历函数。 这里有更多信息. 。再次提供 w3schools 参考 XML DOM 节点.
抛弃普通的 JavaScript。获取 JQuery——它将为您节省大量时间。
不隶属于 StackOverflow