在javascript / jquery中获取URL数组变量
我有一堆参数被URL变量传递给页面。 该URL看起来有点像:
file.aspx?类别[] = 1&类别[] = 7&类别[] = 3&ID = 8az
使用jQuery getUrlParam扩展我可以非常容易地获得url变量,但不是将数组作为数组返回(这是我想要的),它返回为null。
有没有一种方法可以让我将它们读入JavaScript数组中?
不应该是: file.aspx?category=1&category=7&category=3
我之前指出这个问题:使用jQuery获取QueryString值 - 但正如@Crescent Fresh指出的那样,这些示例并不处理查询字符串中的数组(而且,它们有点慢我认为。
所以我制作了这个函数的版本:
function getQueryString () {
var ret = {};
var parts = (document.location.toString().split('?')[1]).split('&');
for (var i = 0; i < parts.length; i++) {
var p = parts[i].split('=');
// so strings will be correctly parsed:
p[1] = decodeURIComponent(p[1].replace(/+/g, " "));
if (p[0].search(/[]/) >= 0) { // then it's an array
p[0] = p[0].replace('[]','');
if (typeof ret[p[0]] != 'object') ret[p[0]] = [];
ret[p[0]].push(p[1]);
} else {
ret[p[0]] = p[1];
}
}
return ret;
}
但有些警告。 它只会在正确形成的查询字符串上工作 - 没有错误检测。 此外,它不适用于编号/索引数组......这就是当你的数组在查询字符串中被定义为:
?category[3]=1&category[4]=7&category[20]=3&id=8az
为.search()查询添加一个正则表达式也很简单,但我不是最好的正则表达式专家......任何人都有想法?
链接地址: http://www.djcxy.com/p/50691.html