当我使用javascript点击它时,如何获得锚点的href? 我做了以下事情:
function myFunc() {
}
window.onclick = myFunc;
但是如何扩展函数以仅响应锚点上的点击并获得href?
答案 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处理程序。最简单的方法是使用jQuery或Prototype等类似的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);
});
答案 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>