Javascript 如何处理类中的所有链接?

Javascript 如何处理类中的所有链接?,javascript,dom,Javascript,Dom,我知道如何处理id为的链接: var a = document.getElementById("mylink"); a.onclick = function() { alert("ok"); }; 但是如果我在一个类中有3个链接,lotsOfLinks和我想要 就像我处理Id一样处理每一个 最好的捷径是什么 谢谢。这样做: var elements = document.getElementsByClassName("lotsOfLinks"); for (var i = 0; i <

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

var a = document.getElementById("mylink");
a.onclick = function() {
  alert("ok");
};
但是如果我在一个类中有3个链接,lotsOfLinks和我想要 就像我处理Id一样处理每一个

最好的捷径是什么

谢谢。

这样做:

var elements = document.getElementsByClassName("lotsOfLinks");
for (var i = 0; i < elements.length; i++) {
    elements[i].onclick = function() {
        alert("ok");
    };
}
这样做:

var elements = document.getElementsByClassName("lotsOfLinks");
for (var i = 0; i < elements.length; i++) {
    elements[i].onclick = function() {
        alert("ok");
    };
}
请注意,querySelectorAll在IE6/7中不起作用,但我可以想象您此时不支持这些JavaScript环境

var a = document.getElementsByTagName('a');
for (var i = 0; i < a.length; i++){
    if (a[i].className == "lotsOfLinks"){
        a[i].onclick = function(){ alert("ok"); }
    }
}
请注意,querySelectorAll在IE6/7中不起作用,但我认为您目前不支持这些JavaScript环境。

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

var a = document.getElementsByTagName('a');
for (var i = 0; i < a.length; i++){
    if (a[i].className == "lotsOfLinks"){
        a[i].onclick = function(){ alert("ok"); }
    }
}
您可以尝试document.getElementsByClassName'myClass';但是在没有polyfill的9之前的IE版本中不支持它

使用addEventListener函数


使用了addEventListener函数。

是否尝试使用jQuery或其他javascript库?如果你的项目可能的话。如果可能的话,您可以检查一下:我认为使用jQuery进行如此简单的操作不是一个好主意。这可能会帮助您:您是否尝试使用jQuery或其他javascript库?如果你的项目可能的话。如果可能的话,您可以检查一下:我认为使用jQuery执行如此简单的操作不是一个好主意。这可能会对您有所帮助:document.getElementsByClassName在旧版本的IEdocument中不受支持。getElementsByClassName在旧版本的IEdocument中不受支持。不要像那样使用for-in循环。它会导致类似数组的结构出现问题,尤其是DOM集合。您的原始循环更好,但是对于这种类型的集合,.length应该被缓存。我通常仅在查询属性时才在这些类型的数组上使用for in,我意识到这种数组的末尾有一个额外的项,但我不确定它的作用是什么,如果我查询元素,当循环到达数组的末尾时,它会导致问题,但我认为在这个示例中它应该是好的?在这里不会有什么影响,但是如果有一天索引顺序很重要,可能会有问题。它命中的额外属性是.length。有时也有一些方法。总的来说,对于有序列表,应该避免使用for in。它造成了太多的潜在问题,并没有带来真正的好处。即使这里没有问题,其他人也会看到它,并因此使用它,而不知道潜在的问题。我同意其他人可能会滥用它,从而将其更改为正常的for循环。感谢您解释.length属性。不要像那样使用for-in循环。它会导致类似数组的结构出现问题,尤其是DOM集合。您的原始循环更好,但是对于这种类型的集合,.length应该被缓存。我通常仅在查询属性时才在这些类型的数组上使用for in,我意识到这种数组的末尾有一个额外的项,但我不确定它的作用是什么,如果我查询元素,当循环到达数组的末尾时,它会导致问题,但我认为在这个示例中它应该是好的?在这里不会有什么影响,但是如果有一天索引顺序很重要,可能会有问题。它命中的额外属性是.length。有时也有一些方法。总的来说,对于有序列表,应该避免使用for in。它造成了太多的潜在问题,并没有带来真正的好处。即使这里没有问题,其他人也会看到它,并因此使用它,而不知道潜在的问题。我同意其他人可能会滥用它,从而将其更改为正常的for循环。感谢您解释.length属性。