javascript: 按类名获取元素

标签 javascript dom addeventlistener getelementsbyclassname

我想做一些简单的事情,而且该网站的 js 并不多,所以我没有为此使用 js 框架。

我正在尝试添加事件单击监听器,我正在尝试按类获取元素。我发现了以下函数以及我尝试过的其他函数,但由于某种原因,它们都没有找到元素。

function getElementsByClass( searchClass, domNode, tagName) { 
    if (domNode == null) domNode = document;
    if (tagName == null) tagName = '*';
    var el = new Array();
    var tags = domNode.getElementsByTagName(tagName);
    var tcl = " "+searchClass+" ";
    for(i=0,j=0; i<tags.length; i++) { 
        var test = " " + tags[i].className + " ";
        if (test.indexOf(tcl) != -1) 
            el[j++] = tags[i];
    } 
    return el;
}
var els = getElementsByClass("wow");
alert(els.length);

我有几个 div 类哇,正在测试,但我一直得到 0。

最佳答案

假设您的函数工作正常,请在 DOM 准备好或窗口加载时执行此操作。或者在结束正文标记之前调用它。

演示:http://jsfiddle.net/rXApk/

关于javascript: 按类名获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4557916/

相关文章:

javascript - 如何将函数绑定(bind)到DOM事件一次且仅一次,使其不会在事件触发时执行第二次?

Javascript addEventListener 未按预期工作

javascript - “联系人列表”练习在 chrome 中无法正确运行

javascript - CSS 和 PHP 运行 exec 并返回原始页面

javascript - 为什么要在 JavaScript 中创建新函数

javascript - Firefox 似乎在更新 DOM 之前等待异步 ajax 完成

javascript - 表单输入字段未清除。这个 "inner-editor"Shadow DOM来自哪里?

javascript - Jquery - .children().children() 与 .find()

javascript - 内部有 2 个 div 的 Flex 盒子,其中一个内部有 Canvas

javascript - 用addEventListener添加一个元素并在下一次迭代中获取它