前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >框架设计续集(二)

框架设计续集(二)

作者头像
天天_哥
发布2018-09-29 14:12:51
3190
发布2018-09-29 14:12:51
举报
文章被收录于专栏:天天天天
对获取元素的getTag方法的拓展,因为getTag方法只能实现标签选择,而下边的getElem方法中还是存在缺陷,因为早期IE不支持document.getElementsByClassName方法,
代码语言:javascript
复制
<script>

    function getElem(selector,results){
        results = results || [];
        var regE = /^(?:#([\w-]+)|\.([\w-]+)|([\w]+)|(\*))$/,
                ex = regE.exec(selector);
        if(ex){
//            console.log(ex)
            if(ex[1]){
                getID(ex[1],results);
            }else if(ex[2]){
                getClass(ex[2],results);
            }else if(ex[3]){
                getTag(ex[3],results)
            }else if(ex[4]){
               getTag("*",results)
            }
        }
        return results;
    }
    function getTag(tag,results){
        results = results || [];
        results.push.apply(results,document.getElementsByTagName(tag));
        return results
    }
    function getID(id,results){
        results = results || [];
        results.push(document.getElementById(id));
        return results
    }
    function getClass(classname,results){
        results = results || [];
        results.push.apply(results,document.getElementsByClassName(classname));
        return results
    }
    function each(arr,fn){
        for(var i=0;i<arr.length;i++){
            if(fn.call(arr[i],i,arr[i])===false){
                break
            }
        }
    }

    var list = getElem("span",getElem(".sel"));
    console.log(list);
    each(list,function(){
        this.style.backgroundColor = "pink";
    })
</script>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.11.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对获取元素的getTag方法的拓展,因为getTag方法只能实现标签选择,而下边的getElem方法中还是存在缺陷,因为早期IE不支持document.getElementsByClassName方法,
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档