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;
            }
        }
  • 相关阅读:
    绝对定位position: absolute;
    加号选择器(ul>li + li)
    position: absolute;绝对定位水平居中问题
    nth-child 和 nth-of-type 的区别
    Scrapy Shell 待续。。。
    TypeError: write() argument must be str, not bytes
    ModuleNotFoundError :No module named 'win32api'
    scrapy 简介
    3月27下午(补交)
    软件工程作业二:需求分析
  • 原文地址:https://www.cnblogs.com/zhansu/p/6681492.html
Copyright © 2011-2022 走看看