我有两个要素:
<input a>
<input b onclick="...">
单击b时,我想访问并操作其中的一些数据。 A没有全局唯一名称,因此document.getElementsByName不在。查看事件对象,我认为event.target.parentNode会有一些像getElementsByName这样的函数,但这似乎不是&lt; td&gt; s的情况。有没有简单的方法呢?
答案 0 :(得分:5)
如果a
和b
彼此相邻并且拥有相同的父级,则可以使用prevSibling
的{{1}}属性查找b
。
答案 1 :(得分:2)
您应该能够找到从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。
答案 2 :(得分:1)
Prototype也有很好的功能可以在DOM中移动。在您的示例中,类似下面的内容可以解决问题:
b.up().down('a')
如果该级别有多个元素,您可以使用CSS选择器的强大功能来准确指定您想要的元素
答案 3 :(得分:0)
留下你的普通香草JavaScript。获取JQuery - 它将为您节省大量时间。