<a> tags, find out which tag was clicked</a>上的onclick处理程序

时间:2010-11-23 12:37:22

标签: javascript html javascript-events dojo

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

如何处理?
我想用纯JavaScript或dojo来做。

3 个答案:

答案 0 :(得分:3)

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

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

演示:http://jsfiddle.net/FVWqT/1/

注意,如果您有五个以上的锚点,并且只想定位特定的锚点,您可能希望按类过滤,例如:

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;   
        }
    }
}

答案 1 :(得分:1)

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

(function() {
   var divcnt = document.getElementById('linkcnt');
    divcnt.onclick = function(evt) {

        var event = (evt || window.event),
            target = (event.target || event.srcElement);

        if (evt.target.tagName === 'A') {
           // event.target is DOM reference to link you clicked
           // evt.target.id  is the ID;
           alert(evt.target.id);

           //callmyfunction(event.target) // Call a function with DOM reference
        }
    }
})();

请参阅此处的工作示例:http://jsfiddle.net/fcalderan/MSvvh/

答案 2 :(得分:1)

不需要复杂的构造,在地址栏中尝试自己:

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