0

重複の可能性:
JavaScript でクエリ文字列値を取得する

この更新 テストのような URL があるとします。

URL にパラメーター q があるかどうかを確認したい。

これを行うために $get() を使用できますか。

If(urlparamerter == q)
{

   do some thing

}

これを行うjqueryビルドイン関数はありますか?

前もって感謝します!

4

3 に答える 3

3

いいえ、これを行うための jQuery 組み込み関数はありません。this SO answerから見つかった次の関数を使用できます

function getParameterByName(name) {

    var match = RegExp('[?&]' + name + '=([^&]*)')
                    .exec(window.location.search);

    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));

}

パラメータを取得するには、次のqように呼び出します

var qvalue = getParameterByName('q');

アップデート

この関数を使用するurl代わりに渡すことで使用current page's urlする場合は、次のように関数を変更します

function getParameterByName(name,url) {

    var match = RegExp('[?&]' + name + '=([^&]*)')
                    .exec(url);

    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));

}

そして、あなたはそれを次のように呼び出すことができます

var qvalue = getParameterByName('q','www.test.com?q=1')

働くフィドル

于 2012-05-21T06:09:13.960 に答える
1

jQueryURLパーサープラグインを確認することをお勧めします。これは、urlおよびqueryStringデータを操作するための非常に簡単な方法です。

var q = $.url().param("q"); // Gets the q parameter
于 2012-05-21T06:10:59.563 に答える
0

GET パラメータの場合、以下から取得できますdocument.location.search

var $_GET = {};

document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
    function decode(s) {
        return decodeURIComponent(s.split("+").join(" "));
    }

    $_GET[decode(arguments[1])] = decode(arguments[2]);
});

document.write($_GET["test"]);

または、より一般的なバージョンを次に示します。

function getQueryParams(qs) {
    qs = qs.split("+").join(" ");
    var params = {},
        tokens,
        re = /[?&]?([^=]+)=([^&]*)/g;

    while (tokens = re.exec(qs)) {
        params[decodeURIComponent(tokens[1])]
            = decodeURIComponent(tokens[2]);
    }

    return params;
}

var $_GET = getQueryParams(document.location.search);

または、さらに良いのは、PHP を使用してそれらを取得することです。

var $_GET = <?php echo json_encode($_GET); ?>;

この回答はこのスレッドからのものです。

于 2012-05-21T06:08:36.757 に答える