据我所知,只有两种方法可以使用标准 Javascript 来实现这一点。第一种方法已经概述了——将节点作为参数传递给函数。另一种方法是处理onclick锚的事件。这与以前的方法非常相似,因为它要求您修改标记以将参数传递给函数。为此,您需要将标记更改为以下内容:
<a href="#" onclick="SomeFunction(event)">Href works here</a>
function SomeFunction(event) {
var node = event.srcElement;
}
上面的代码会将事件对象传递给函数,该函数将为您提供有关该事件的各种有趣信息。
如果您无法更改发送到浏览器的标记,您可能需要考虑使用 JQuery 或其他 AJAX 库之类的东西在运行时搜索和修改节点的事件处理程序。在标记到达浏览器之前对其进行修改显然是首选,但有时您别无选择。
最后,如果您无法更改标记并且不想在运行时修改 DOM,您始终可以查看可用的 Javascript 引擎特定功能。例如,您可能能够arguments.caller在那些支持它的引擎中使用。我并不是说它会起作用,但您可能想看看有什么可用的。