1

我知道如何处理带有 id 的链接:

var a = document.getElementById("mylink");
a.onclick = function() {
  alert("ok");
};

但是,如果我在一个类.lotsOfLinks中有 3 个链接,并且我想像处理 Id 一样处理每个链接。

什么是最好和最短的方法?

谢谢你。

4

5 回答 5

4

像这样做:

var elements = document.getElementsByClassName("lotsOfLinks");
for (var i = 0; i < elements.length; i++) {
    elements[i].onclick = function() {
        alert("ok");
    };
}
于 2013-04-05T15:59:13.717 回答
1
// use querySelectorAll for greater browser compatibility
var a = document.querySelectorAll(".mylink");

// make your handler
var handler = function() {
  alert("ok");
};

// iterate the collection, and assign the handler
for (var i = 0; i < a.length; i++) {
    a[i].onclick = handler;
}

请注意,querySelectorAll这在 IE6/7 中不起作用,但我想您此时不支持那些 JavaScript 环境。

于 2013-04-05T15:59:29.203 回答
0
var a = document.getElementsByTagName('a');
for (var i = 0; i < a.length; i++){
    if (a[i].className == "lotsOfLinks"){
        a[i].onclick = function(){ alert("ok"); }
    }
}
于 2013-04-05T15:59:51.320 回答
0

您可以尝试document.getElementsByClassName('myClass');,但在 9 之前的 IE 版本中不支持没有 polyfill

http://caniuse.com/getelementsbyclassname

于 2013-04-05T16:00:48.587 回答
0
  var elements = document.getElementsByClassName("lotsOfLinks");
  for(var i = 0; i < elements.length; i++) {
     elements[i].addEventListener("click", function() {
         alert("ok");
     }
  }

使用了 addEventListener() 函数。

于 2013-04-05T16:01:47.903 回答