【问题标题】:Javascript get anchor href on clickJavascript在点击时获取锚href
【发布时间】:2010-06-11 19:16:44
【问题描述】:

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

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

但是如何扩展函数只响应锚点的点击并获取href呢?

【问题讨论】:

  • 锚的href?锚不是像页面上的别针一样有自己的名字吗?它没有href。如果您想获取任何链接的href,那么我建议使用jquery

标签: javascript javascript-events


【解决方案1】:
函数链接点击(e){
  警报(e.target.href);
}
链接 = document.getElementsByTagName('a');
对于 (i = 0; i 
    
【解决方案2】:

您的document.onclick 在整个文档上注册处理程序。但是您应该将其添加到每个链接中。你可以使用 JavaScript 来做到这一点,并且使用像 Prototype 或 jQuery 这样的框架会更容易:

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

但您也可以使用纯 JS 将 getElementsByTagName 函数与循环结合使用(请参阅 Delan 的新答案)。

【讨论】:

  • 当你在没有任何评论的情况下拒绝投票时,这真的很令人失望。
  • 你的回答很好,但我需要没有 jQuery 的解决方案,因为 jQuery 对我的问题来说有点过载。谢谢! :)
  • 这是一个原型而不是 jQuery 解决方案,我还指出了如何在没有框架的情况下完成它。而且你没有告诉 use 你不想使用框架,甚至没有使用框架。
【解决方案3】:

它不会像这样工作,您需要为每个锚点设置一个 onclick 处理程序。最简单的方法是使用 JavaScript 框架,如 jQueryPrototype 或类似的东西。

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

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

【讨论】:

  • 您的原型不正确。我之前发布的完全一样。看看我的答案,看看如何在 Prototype 中做到这一点。
【解决方案4】:
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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    相关资源
    最近更新 更多