您的位置:首页 > 其它

location的search操作——解析url字符串,返回包含所有参数的一个对象

2015-08-10 16:39 701 查看
function getSearchObj(){
var  qs = location.search.length>0 ? location.search.substr(1):'',
args = {},
items = qs.length>0 ? qs.split('&'):[],
item = null,name = null,value = null,i = 0,len = items.length;

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;
}


url

http://127.0.0.1:8020/suzhou/810.html?a=3&b=3&c=66

结果

object {a: “3”, b: “3”, c: “66”}

利用了几次三元运算,很精巧的减少了代码量,并且同时申明了这么多变量,学习了。

此外一般连接中的search内容,都被编码过,所以需要用decodeURIComponent函数来解码。

不足之处

url

http://127.0.0.1:8020/suzhou/810.html?a=3&b=3&c=66&a=4

则返回

object {a: "4", b: "3", c: "66"}


其中a出现了两次,但是只记录了一次。需要对函数进行改良。下次再说
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: