单击时JavaScript获取锚href

ne5o7dgx  于 2023-01-04  发布在  Java
关注(0)|答案(4)|浏览(102)

当我使用JavaScript点击一个锚点时,如何获得它的href?我做了以下操作:

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

但是如何扩展这个函数,使其只响应对锚点的点击并获取href呢?

blpfk2vs

blpfk2vs1#

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

mwg9r5ms2#

你的document.onclick在整个文档中注册了这个处理程序,但是你应该把它添加到每个链接中,你可以用JavaScript来做,使用Prototype或jQuery这样的框架会更容易:

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

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

voase2hg

voase2hg3#

它不会像这样工作,你需要为每个锚点设置一个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-Boy的答案

ct3nt3jp

ct3nt3jp4#

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>

相关问题