Javascript在点击时获得锚点href

时间:2010-06-11 10:39:03

标签: javascript javascript-events

当我使用javascript点击它时,如何获得锚点的href? 我做了以下事情:

function myFunc() {
}
window.onclick = myFunc;

但是如何扩展函数以仅响应锚点上的点击并获得href?

4 个答案:

答案 0 :(得分:12)

function linkClick(e) {
  alert(e.target.href);
}
links = document.getElementsByTagName('a');
for (i = 0; i < links.length; i++)
  links[i].addEventListener('click', linkClick, false);

答案 1 :(得分:2)

您的document.onclick在整个文档中注册处理程序。但是你应该把它添加到每个链接。您可以使用JavaScript执行此操作,并使用Prototype或jQuery等框架使其更容易:

$$('a').invoke('observe', 'click', function(a){
    myFunc(a);
});

但你也可以使用纯JS将getElementsByTagName函数与循环结合起来(参见Delan的新答案)。

答案 2 :(得分:1)

它不会像这样工作,你需要为每个锚设置一个onclick处理程序。最简单的方法是使用jQueryPrototype等类似的javascript框架。

扩展你的函数以接收调用对象:

var myFunc = function(target) {
  var href = target.href;
  // ... your function code that can now see the href of the calling anchor
}

jQuery的:

$('a').click(function(){
  myFunc(this);
});

原型:请参阅Kau-Boyanswer

答案 3 :(得分:-1)

function myFunc(link) {
  alert(link.href);
  return false; // return false if you don't want to actually navigate to that link
}


<a href onclick="return myFunc(link)">something</a>