0

重複の可能性:
クエリ文字列値を取得するにはどうすればよいですか?

次のようなiveaa関数呼び出し:

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

しかし、まだvartestParamterを関数呼び出しに挿入できません。

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 に答える