zoukankan      html  css  js  c++  java
  • 原生JS代码封装(输入id名、class名、标签名 返回 "object HTMLDivElement")

    object HTMLDivElement,即 HTMLDivElement 对象,
    而这个对象是哪里来的呢? 查阅 《JavaScript权威指南》中文第六版363页,
    我们可以知道: HTMLDivElement 是 HTMLElement 的一个子对象,
    而 HTMLElement 又是 Element 的子对象。
     
    function $(selector) {
        var startWith = "";
        if(/^#/.test(selector)) {
            startWith = "id";
        } else if(/^./.test(selector)) {
            startWith = "class";
        } else if(/^[^#.]/.test(selector)){
            startWith = "tagname";
        }
        
        if(/[w+=.+?]/.test(selector) ){ //属性选择器
            var arr = selector.match(/(.+?)[(w+)=(.+?)]/);
            //.box[name=123]
            var _selec = arr[1]; //.box
            var propname = arr[2]; //name
            var propval = arr[3]; //123
            var elelist = null;
            
            switch(startWith) {
                case "id" : return _id(_selec.substring(1));
                case "class" : {
                    console.log();
                    elelist = Array.from(document.getElementsByClassName(_selec.substring(1)));
                    return elelist.filter(function(val, index){
                        return val[propname] == propval;
                    });
                }
                case "tagname" : {
                    elelist = Array.from(document.getElementsByTagName(_selec));
                    return elelist.filter(function(val, index){
                        return val[propname] == propval;
                    });
                }
            }
            return null;
        }
        
        switch(startWith) {
            case "id" : return _id(selector.substring(1));
            case "class" : {
                return _class(selector.substring(1));
            }
            case "tagname" : {
                return _tag(selector);
            }
        }
        
        function _id(id) {
            return document.getElementById(id)
        }
        function _class(classname) {
            console.log(classname);
            return Array.from(document.getElementsByClassName(classname));
        }
        function _tag(tag) {
            return Array.from(document.getElementsByTagName(tag));
        }
    }
  • 相关阅读:
    JVM常用参数设置
    Jstat在分析java的内存GC时的应用
    jstack来分析linux服务器上Java应用服务性能异常
    linux 远程连接服务器ftp命令整理
    LR11中webservice协议的性能测试应用
    Windbg在.net性能问题排查hang情况的应用思路
    Windbg基本命令应用总结
    LR11直接对数据库访问操作方法在性能测试中的应用总结
    BenchmarkSQL v5.0测试达梦数据库
    SSH登录时间久,登录后报错:'abrt-cli status' timed out
  • 原文地址:https://www.cnblogs.com/sunyang-001/p/10812971.html
Copyright © 2011-2022 走看看