码迷,mamicode.com
首页 > 其他好文 > 详细

About getByClass

时间:2015-11-17 16:38:08      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

不能获取class为多个的情况

function getByClass(parent,cls){
    var res=[];
    var ele=parent.getElementsByTagName("*");
    for(var i=0;i<ele.length;i++){
        if(ele[i].className==cls){
            res.push(ele[i]);
        }
    }
    return res;
}

\b 把除字母、数字、下划线的其它字符都当成是边界,当class为像abc-test时可能获取不准确

function getByClass(parent,cls){
    var res=[];
    var reg=new RegExp("\\b"+cls+"\\b",i);
    var ele=parent.getElementsByTagName("*");
    for(var i=0;i<ele.length;i++){
        if(reg.test(ele[i].className)){
            res.push(ele[i]);
        }
    }
    return res;
}

有空格

function getByClass(parent,cls){
    var res=[];
    var reg=new RegExp(" "+cls+" ",i);
    var ele=parent.getElementsByTagName("*");
    for(var i=0;i<ele.length;i++){
        if(reg.test(" "+ele[i].className+" ")){
            res.push(ele[i]);
        }
    }
    return res;
}

空格使用正则来处理

function getByClass(parent,cls){
    var res=[];
    var reg=new RegExp(‘(^|\\s)‘+cls+‘($|\\s)‘,‘i‘);
    var ele=parent.getElementsByTagName("*");
    for(var i=0;i<ele.length;i++){
        if(reg.test(ele[i].className)){
            res.push(ele[i]);
        }
    }
    return res;
}

结合getElementsByClassName()

function getByClass(parent,cls){
    if(parent.getElementsByClassName){
        return parent.getElementsByClassName(cls);
    }
    else{
        var res=[];
        var reg=new RegExp(" "+cls+" ","i");
        var ele=parent.getElementsByTagName("*");
        for(var i=0;i<ele.length;i++){
            if(reg.test(" "+ele[i].className+" ")){
                res.push(ele[i]);
            }
        }
        return res;
    }
}

 

About getByClass

标签:

原文地址:http://www.cnblogs.com/jiujiaoyangkang/p/4971975.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!