JavaScript-有没有好用的Javascript原生的getElementByClass的方法?

WordPress 开发 WordPress 开发 主题:1098 回复:2322

JavaScript-有没有好用的Javascript原生的getElementByClass的方法?

灵芸 发布于 2017-04-01 字数 50 浏览 979 回复 1

要求:需要考虑到一个元素有多个class的情况。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(1

虐人心 2017-09-02 1 楼

刚写了一个,你测试一下:

function getElementsByClass(cName ,tagName){

    var elements = tagName ? document.getElementsByTagName(tagName) : document.getElementsByTagName('*');
    var findEles = [];
    var reg = new RegExp('^'+cName+'s*|s+'+cName+'s+|s+'+cName+'$');
    for(var i=0;i<elements.length;i++) {
        if(reg.test(elements[i].className))findEles.push(elements[i]);           
    }
    return findEles;
}

调用例子:

var eles = getElementsByClass('aa'); //获取所有class存在 aa 的元素

由于 document.getElementsByTagName('*') 会匹配页面所有元素,如果能确定tagName 的话 最好传 第二个参数:

var eles = getElementsByClass('b','div'); //仅返回class 存在 b 的 div