獲得最接近的元素,我有兩個要素:通過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 - 它將爲您節省大量時間。