передать this
во встроенном обработчике кликов
<a href="123.com" onclick="click123(this);">link</a>
или используйте event.target
в функции (в соответствии с моделью события W3C DOM Level 2 )
function click123(event)
{
var a = event.target;
}
Но, конечно, IE отличается , так что ванильный JavaScript-способ справиться с этим -
function doSomething(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;
}
или менее многословный
function doSomething(e) {
e = e || window.event;
var targ = e.target || e.srcElement;
if (targ.nodeType == 3) targ = targ.parentNode; // defeat Safari bug
}
, где e
- это event object
, который передается функции в браузерах, отличных от IE.
Если вы используете jQuery, я бы настоятельно рекомендовал ненавязчивый JavaScript и использовать jQuery для привязки обработчиков событий к элементам.