1

次のような URL を指定します。http://mydomain.com/mypage.asp?Animal=Elephant

VBScript は、Request オブジェクトを使用して QueryString 内の個々の項目を取得する優れた方法を提供します。

dim animal = Request.QueryString["Animal"]

似たようなことをするためにかなり複雑な JavaScript があちこちに出回っているのを見てきましたが、jQuery ライブラリーに、車輪を再発明することなくこれを行う機能があることを願っています。私が持っているjQueryの本にも、jQueryのWebサイトにもありません。

私は木を無駄に吠えていますか?これを行うためのNATIVE jQuery関数はありますか?

私の質問は、上記で提供した VBScript に匹敵する QueryString を取得するためのNATIVE JQUERY FUNCTIONの存在を求めていることに注意してください。質問に対する 1 行のソリューション。そのような:

var animal = $.getParameterByName("Animal");

私の質問に対する答えは 2 つしかありません。彼らです:

  1. いいえ、説明されているようなネイティブの 1 行の jQuery 関数はありません。または
  2. はい、説明されているネイティブの 1 行の jQuery 関数があり、ここにあります...

QueryString 全体を取得する方法と、Javascript を使用してそれを解析する方法を知っています。わからないのは、私が求めていることを実行する jQuery メソッドまたは関数があるかどうかです。

4

2 に答える 2

1

「いいえ、説明されているネイティブの 1 行の jQuery 関数はありません」

ただし、それを変更するのは非常に簡単です。

(function($){
    function getParameterByName(name) {
        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
            results = regex.exec(location.search);
        return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    }
    $.getParameterByName = getParameterByName;
})(jQuery);

これを jquery の後の head に含めると、次のように簡単に実行できます。

var animal = $.getParameterByName("Animal");

から取得した名前でパラメーターを取得する方法: JavaScript でクエリ文字列値を取得するにはどうすればよいですか?

于 2013-10-17T22:15:01.647 に答える
0

これがあなたの質問に答えていないことはわかっていますが、VBScript の方法がいいと感じることには同意します。

window.Request = {
  QueryString: {}
};

window.location.search.split('?')[1].split('&').forEach(function(kv){
  Request.QueryString[kv.split('=')[0]] = decodeURIComponent(
    kv.split('=')[1].replace(/\+/g, " ")
  );
});

var animal = Request.QueryString['animal'];
于 2013-10-18T00:04:56.180 に答える