zoukankan      html  css  js  c++  java
  • 解析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;
            }
        }
  • 相关阅读:
    Xamarin和微软发起.NET基金会
    迷你 MVC
    编制进度计划、保存基准
    JQuery UI Layout Plug-in布局
    (转载)Log4Net 在多层项目中的使用小记
    Json.Net6.0
    EasyUI搭建前端框架
    using和yield return
    ExpandoObject,DynamicObject,DynamicMetaObject
    Net 4.0 之 Dynamic 动态类型
  • 原文地址:https://www.cnblogs.com/zhansu/p/6681492.html
Copyright © 2011-2022 走看看