【问题标题】:About getElementsByTagName关于 getElementsByTagName
【发布时间】:2013-09-20 18:48:21
【问题描述】:

我试图在每次用户单击页面上的链接时弹出一个警告框 - 这样做只是为了练习以更好地理解概念 - 我无法让它适用于所有人(“a” ) 标签。如果我指定,我可以让它适用于一个(“a”)标签,即:getElementsByTagName("a")[0]... 但是我不能让所有标签都以相同的方式响应。

这里是代码

function links() {
    if(!document) return false;
    var link = document.GetElementsByTagName("a")[0];
    link.onclick = function() {
                       alert("hi");
                   }
}

我试过 document.getElementsByTagNAme("a")[0:4] 认为它可能像 python 一样工作,但它没有做到。有人可以帮帮我吗?

谢谢!

【问题讨论】:

  • 编写一个for 循环,将函数添加到所有函数。

标签: javascript getelementsbytagname


【解决方案1】:

document.getElementsByTagName() 返回与该标记匹配的元素数组。由于您引用的是第 0 个元素,因此只有第一个 <a> 标签会受到影响。

要解决此问题,您可以遍历数组并将 onclick 句柄应用于每个元素。

【讨论】:

    【解决方案2】:

    你可以这样试试:

    var link = document.getElementsByTagName("a");
    
    for (var i = 0, j = link.length; i < j; ++i) {
        link[i].onclick = function() {
            alert("hi");
        }
    }
    

    这是一个 jsfiddle:http://jsfiddle.net/v3f7U/

    【讨论】:

    • 这很有帮助!! :)
    猜你喜欢
    • 2014-05-04
    • 2018-06-22
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 2011-01-31
    • 1970-01-01
    相关资源
    最近更新 更多