Javascript onclick处理程序打开<;a>;标记,找出单击了哪个标记

Javascript onclick处理程序打开<;a>;标记,找出单击了哪个标记,javascript,html,dojo,dom-events,Javascript,Html,Dojo,Dom Events,我的页面上有5个锚定标签。现在,当这些标记中的一个被点击时,我想调用一个JavaScript函数,在这个函数中,我需要找出哪个锚被点击 如何处理这个问题? 我想用纯JavaScript或dojo来实现它。var-anchors=document.getElementsByTagName(“a”); var anchors = document.getElementsByTagName("a"); for(var i = 0; i < anchors.length; i++) {

我的页面上有5个锚定标签。现在,当这些标记中的一个被点击时,我想调用一个JavaScript函数,在这个函数中,我需要找出哪个锚被点击

如何处理这个问题?
我想用纯JavaScript或dojo来实现它。

var-anchors=document.getElementsByTagName(“a”);
var anchors = document.getElementsByTagName("a");

for(var i = 0; i < anchors.length; i++) {
    anchors[i].onclick = function() {
        alert(this.id);
        doStuff(id);
        return false;   
    }
}
对于(var i=0;i
演示:

注意,如果您有五个以上的锚点,并且只希望针对特定的锚点,则可能需要按类进行筛选,例如:

var anchors = document.getElementsByTagName("a");

for(var i = 0; i < anchors.length; i++) {
    if(anchors[i].className == "something") {
        anchors[i].onclick = function() {
            alert(this.id);
            doStuff(id);
            return false;   
        }
    }
}
var-anchors=document.getElementsByTagName(“a”);
对于(var i=0;i
var anchors=document.getElementsByTagName(“a”);
对于(var i=0;i
演示:

注意,如果您有五个以上的锚点,并且只希望针对特定的锚点,则可能需要按类进行筛选,例如:

var anchors = document.getElementsByTagName("a");

for(var i = 0; i < anchors.length; i++) {
    if(anchors[i].className == "something") {
        anchors[i].onclick = function() {
            alert(this.id);
            doStuff(id);
            return false;   
        }
    }
}
var-anchors=document.getElementsByTagName(“a”);
对于(var i=0;i
不必为页面中的每个链接定义onclick处理程序,为了获得更好的性能,您可以在links容器上使用事件委派(这种技术非常适合您的任务),例如


请参见此处的工作示例:

不要为页面中的每个链接定义onclick处理程序,为了获得更好的性能,您可以在links容器上使用事件委派(此技术非常适合您的任务),例如


请参见此处的工作示例:

无需复杂构造,请在地址栏中自行尝试:

javascript:(
  function () {
    for (var i=0; i<document.links.length; i++)
      document.links[i].onclick = function () {
        return confirm(this.href+'\nORLY?')
      };
  }
)();
javascript:(
函数(){

对于(var i=0;i无需复杂构造,请在地址栏中自行尝试:

javascript:(
  function () {
    for (var i=0; i<document.links.length; i++)
      document.links[i].onclick = function () {
        return confirm(this.href+'\nORLY?')
      };
  }
)();
javascript:(
函数(){

对于(var i=0;iyou最好在文档的onload事件中使用此代码,这样所有锚定标记都会在那里。此外,还可以纠正轻微的键入错误,应该是:if(锚定[i]。className==“something”){:-)干杯,我的荣幸..顺便问一下,使用同一个函数不是更有效吗?我可以在Property if ancor中添加事件处理程序作为onclick=“testfunction”?您最好在文档的onload事件中包含此代码,这样所有锚定标记都会在那里。另外,还可以纠正一些小错误,它应该是:if(anchors[i]。className==“something”){:-)干杯,我的荣幸..顺便问一下,使用相同的函数不是更有效吗?如果ancor as onclick=“testfunction”,我可以在propery中添加事件处理程序吗?由于事件冒泡,事件委派在所有当前浏览器中工作。当事件到达容器时,您正在捕获单击。由于事件冒泡,事件委派在所有当前浏览器中工作。当事件到达容器时,您正在捕获单击。