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出现了两次,但是只记录了一次。需要对函数进行改良。下次再说