-2

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

次のクエリ文字列があります。

"active_tab=delivered&active_tab=all&active_tab=delivered&active_tab=outstanding
&active_tab=delivered&active_tab=outstanding&active_tab=all&active_tab=delivered&active_tab=outstanding&title_filter=conformance&title_filter=delivering&title_filter=packaging
&title_filter=delivering&title_filter=all&title_filter=delivering&title_filter=all&title_filter=packaging&title_filter=conformance&title_filter=packaging
&title_filter=delivering&title_filter=packaging&title_filter=ordered"

title_filter上記のクエリ文字列のfinal ( "ordered")とactive_tab( "delivered")をどのように解析しますか?また、そのクエリ文字列変数が存在しない場合は、次のようにします=""

4

2 に答える 2

4
var query = {};

var largeString = "active_tab=delivered&active_tab=all&active_tab=delivered&active_tab=outstanding&active_tab=delivered&active_tab=outstanding&active_tab=all&active_tab=delivered&active_tab=outstanding&title_filter=conformance&title_filter=delivering&title_filter=packaging&title_filter=delivering&title_filter=all&title_filter=delivering&title_filter=all&title_filter=packaging&title_filter=conformance&title_filter=packaging&title_filter=delivering&title_filter=packaging&title_filter=ordered";

largeString.split('&').forEach(function(keyValue){
    var kvp = p.split('=');
    query[kvp[0]]= kvp[1];
});

配列をサポートする必要がある場合:

largeString.split('&').forEach(function(keyValue){
    var kvp = keyValue.split('=');

    if(kvp[0] in query){
        if(typeof(query[kvp[0]] === 'string')){
            query[kvp[0]] = [query[kvp[0]]];
        }
        query[kvp[0]].push(kvp[1]);
    }else{
        query[kvp[0]] = kvp[1];
    }
});
于 2013-01-17T21:08:16.953 に答える
0

重複を削除するようにクエリ文字列を変更してから、次のようにしました。

var active_tab = window.location.search.split('active_tab=')[1].split('&')[0]
var title_filter = window.location.search.split('title_filter=')[1].split('&')[0]
于 2013-01-17T21:20:54.640 に答える