• 解析URL查询字符串参数为对象以及老浏览器的getElementsByClassName


      高程3使用拼接字符串形式解析的查询字符串,网上有各种正则方式解析的,记得太多,临时需要写的时候,自己都搞混乱了。只记一种吧,用正则。

      

        function getQueryStringArgs() {
            var search = (location.search.length > 0 ? location.search.slice(1) : "");
            var obj = {};
            var reg = /([^?&=]+)=([^?&=]*)/g;
            search.replace(reg, function (match, $1, $2) {
                var name = decodeURIComponent($1);
                var val = decodeURIComponent($2);
                obj[name] = val;
                return match;
            });
            return obj;
        }

     另外一种方法是

                function parseQueryString(url) {
                    var result = {};
                    var arr = url.split("?");
                    if (arr.length <= 1) {
                        return result;
                    } else {
                        arr = arr[1].split("&");
                        arr.forEach(item => {
                            let a = item.split('=')
                            result[a[0]] = a[1]
                        })
                        return result;
                    }
                }
    
                var url = "http://witmax.cn/index.php?key0=0&key1&key2=2";
                var ps = parseQueryString(url);
                console.log(ps)

    这两种方法区别是,对于查询字符串里的key1只有键没有值,方法1会忽略该键,方法2不会忽略而是把值当成undefined

    兼容老浏览器的getElementsByClassName,注意这个不适用于多个类名。

        function getElementsByClassName(node, classname) {
            if (node.getElementsByClassName) {
                return node.getElementsByClassName(classname);            
            } else {
                var results = [];
                var elems = node.getElementsByTagName('*');
                for (var i = 0; i < elems.length; i++) {
                    if (elems[i].classname.indexOf(classname) != -1) {
                        results[results.length] = elems[i];
                    }
                }
                return results;
            }
        }
  • 相关阅读:
    Python socket 基础(Server)
    Python socket 基础(Client)
    DOM
    Software Testing Concepts
    coroutine
    这一周~&&html+css的学习感悟
    充实的几天~
    时间不够用的感觉
    论文真痛苦
    焦躁的一周……
  • 原文地址:https://www.cnblogs.com/zhansu/p/6681492.html
Copyright © 2020-2023  润新知