0

可能重复:
如何获取查询字符串值?

我有一个函数调用,如:

var ex = _.where(obj, {param1:0,param2:1});

效果很好,所有代码都在后面。

我检查我的 URL 并取出参数并将此信息保存到数组中:

    var query = window.location.search.substring(1);

    var vars = query.split("&");

    var testParamter = vars.toString().replace( /=/g,':' );

通过使用 console.log(testParamter); 返回 以下结果:

param1:0,param2:1

但我还不能将 var testParamter 插入到我的函数调用中:

var ex = _.where(obj, {testParamter});

因为它是一个字符串,我不能用 eval() 处理它。所以谁能告诉我正确的方法来解决它?

谢谢

4

1 回答 1

0

遍历查询字符串中的值并从这些值创建一个对象:

var query  = window.location.search.substring(1),
    vars   = query.split("&"),
    params = {};

$.each(vars, function(k,v) {
    var arr = v.split('=');
    params[ decode(arr[0]) ] = decode(arr[1]);
});

var ex = _.where(obj, params);

function decode(s) { 
    return decodeURIComponent(s.replace(/\+/g, " ")); 
}
于 2013-02-04T20:44:37.760 回答