Javascript 如何从调用的函数中引用包含事件的元素?

Javascript 如何从调用的函数中引用包含事件的元素?,javascript,dom-events,yui,Javascript,Dom Events,Yui,从fireAlert()函数的内部,我如何引用调用它的元素,而不必通过链接将this作为参数传递 <script type="text/javascript"> //function function fireAlert(){ alert(); } </script> <a href="javascript:;" onclick="fireAlert();">Fire</a>

fireAlert()
函数的内部,我如何引用调用它的元素,而不必通过链接将
this
作为参数传递

<script type="text/javascript">

//function
function fireAlert(){
    alert();
}

</script>

<a href="javascript:;" onclick="fireAlert();">Fire</a>

//作用
函数fireAlert(){
警惕();
}

有更简单的方法可以使用,但没有它,情况就是这样:

更新:请尝试以下HTML/Javascript代码。请注意,我是如何在window.onload内部附加onclick事件,而不是将其指定为元素的属性

在本例中,我将事件附加到页面中的所有锚定标记,但是对于特定的锚定标记,您可以将
getElementsByTagName
替换为
getElementById

<html>
    <head>
        <script language="javascript">
        function fireAlert(e)
        {
            var whoCalled = e ? e.target : event.srcElement;

            alert(whoCalled.innerHTML);
        }
        window.onload=function()
        {
            var allHrefs = document.getElementsByTagName("a");
            for(i=0;i<allHrefs.length;i++)
            {
                allHrefs[i].onclick=fireAlert;
            }
        }
        </script>
    </head>
    <body>
        <a href="#">Hello #1</a>
        <a href="#">Hello #2</a>
        <a href="#">Hello #3</a>
        <a href="#">Hello #4</a>        
    </body>
</html>

功能fireAlert(e)
{
var whoCalled=e?e.target:event.src元素;
警报(whoCalled.innerHTML);
}
window.onload=function()
{
var allHrefs=document.getElementsByTagName(“a”);
对于(i=0;i

正如Jose所说,使用jQuery很容易

$(document).ready(function()
{
    $("a").click(function()
    {
        // this == the clicked element
    });
});

srcElement不是只针对IE吗?此解决方案在FF或IE7中都不起作用。“window.event未定义”。使用Firebug,我找不到任何名为event的对象。我能够在堆栈中找到onclick事件及其关联元素(在Firebug中),但我不知道如何在代码中引用它。@Jamis-我用我在FF、IE7和Chrome中测试过的新代码更新了我的原始帖子。@Jose-谢谢。我知道,如果你悄悄地添加事件,你可以在函数中引用e作为事件(一种方法是使用YUI的event.addeventlistener()函数).在使用内联事件时,您是否有任何方法可以引用事件e,即“”?我对此进行了深入研究,但在FF中不起作用,因为它没有事件对象。我使用YUI。因此,如果有一种简单的方法可以使用YUI,那也会起作用。我使用YUI。到目前为止,没有一个答案对我有效。