查询URL字符串参数

虽然location.search对象可以获取到URL末尾的所有内容,但却没有办法逐个访问其中的每个查询字符串参数。

因此,可以像下面这样创建一个函数,用以解析查询字符串,然后返回包含所有参数的一个对象;

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>


// demo : 假设当前访问路径为 :'file:///C:/Users/Administrator/Desktop/demo.html?qwq=1&we=23&23=5232';

function getQueryStringArgs(){
    // 取得查询字符串并去掉开头的问号
    var qs = (location.search.length > 0 ? location.search.substring(1) : ""),
        args = {},  // 保存数据的对象
        items = qs.length ? qs.split("&") : [], // 取得每一项
        item = null,
        name = null,
        value = null,
        i = 0,  // 在for循环中使用
        len = items.length;

    // 逐个将每一项添加到args对象中
    for (i = 0; i < len; i++) {
        item = items[i].split("=");
        name = decodeURIComponent(item[0]);
        value = decodeURIComponent(item[1]);

        if (name.length) {
            args[name] = value;
        }
    }

    return args;
}

var res = getQueryStringArgs();
console.log(res);
console.log(res['23']);

</script>
</head>
<body>
    
</body>
</html>

 

posted @ 2015-05-21 11:35  白小虫  阅读(682)  评论(0编辑  收藏  举报