获取url地址中的参数:
window.getQueryParameters = function(str) {
index = document.location.href.indexOf("?")
str = document.location.href.substring(index)
return str.replace(/(^\?)/,'').split("&").map(function(n){
return n=n.split("="),
this[n[0]]=n[1],
this;
}.bind({}))[0];
};
1.使用replace方法将?前面的的字符用空格全部替换
2.用split 方法将&分割的各个参数转化为一个数组
3.对数组中的每个元素使用map方法(以数组参数作为参数执行方法)
4.******最关键的一点,使用了bind方法将this指向了一个新创建的对象上
5.最后这段代码还使用了逗号运算符
上面的代码完全可以这样写:
function getUrl() {
index = document.location.href.indexOf("?")
str = document.location.href.substring(index);
var params = {};
str.replace(/(^\?)/,'').split("&").map(function(n){
n = n.split("=");
params[n[0]] = n[1];
});
return params;
};
网友评论