如何将URL查询参数放入对象文字中?

时间:2009-07-21 19:05:14

标签: javascript jquery

在查看location.search时,获取查询参数并将其转换为对象文字的最佳方法是什么?假设我有一个如下所示的网址:

  

http://foo.com?nodeId=2&userId=3&sortOrder=name&sequence=asc

我最喜欢的是一个看起来像这样的对象文字:

var params = {
  nodeId : 2,
  userId : 3,
  sortOrder: name,
  sequence: asc
}

所以我想做这样的事情:

var url = location.search;
url = url.replace('?', '');
var queries = url.split('&');
var params = {};
for(var q in queries) {
var param = queries[q].split('=');
params.param[0] = param[1];

};

但这一行:

params.param[0] = param[1]

生成错误。如果您不知道密钥名称,如何迭代这些密钥?

我们正在使用jQuery,我确信有一个插件可以执行此操作,但我还是想了解如何编程。

2 个答案:

答案 0 :(得分:3)

你应该使用

params[ param[0] ] = param[1]

仅供参考,您也可以使用regex approach

答案 1 :(得分:1)

试试URL Utils jQuery plugin,就是这样!

var params = $.queryString();