1

jQueryには機能がありparam()、同様の機能を探しています。オブジェクトで URL を返す必要があります。例えば:

url: function() {
  return this.baseUrl + '?' + $.param({page: this.page, perPage: this.perPage});
},

example.com/?page=1&perPage=5これは、または同様の形式で URL を返します。どうすれば URL を形成できexample.com/page/1/perpage/5ますか?

4

3 に答える 3

2

独自の関数を作成できます。

function build(base, params) {
    for(var k in params) {
        if(params.hasOwnProperty(k)) {
            base += '/' + k + '/' + params[k];
        }
    }
    return base;
}

唯一の問題は、パラメーターの順序が保証されていないことです (クエリ文字列では問題ありませんが、この種の URL では問題になる可能性があります)。baseすでにスラッシュで終わっているかどうかのチェックを追加することもできます。

于 2011-04-27T20:15:10.147 に答える
1

ただのアイデア:)

'example.com/?page=1&perPage=5'.replace(/[&=]/g,'/').replace('?','')
 .toLowerCase();
于 2011-04-27T20:20:39.623 に答える
0

これを最後に追加します:

replace(/[&=]/g,'/').replace('?','')

そのようです:

url: function() {
  return (this.baseUrl + '?' + $.param({page: this.page, perPage: this.perPage})).replace(/[&=]/g,'/').replace('?','');
},

Felix Kling の ? に関する懸念を指摘するために編集されました: これは FIRST ? のみを削除します。クエリ文字列 INTACT の一部である他の ? はそのままにしておきます。完全に安全に使用できます。

于 2011-04-27T20:20:56.947 に答える