jQueryでURLのパラメーターを取得して、そのパラメーターが指定の文字列に一致するとアラートが表示されるようにしたいと思います。


PHPでいうと、以下のようなソースです。
if($_GET["id"]=="1"){
echo "IDが入力されています";
}

jQueryでURLのパラメーターを取得する方法があれば教えて下さい。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/10/31 14:36:47
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:mattn No.1

回答回数104ベストアンサー獲得回数23

ポイント27pt

プラグインを使わずだと、いろいろしないと出来ないでしょうね。

"?"以降を取って来て"&"でsplitして"="でsplitして、value部をdecodeURIComponentして...など。

http://projects.allmarkedup.com/jquery_url_parser/

jQuery Pluginとして、こんなのもあるようなので試してみてはどうでしょうか。

id:kt26

"?"以降を取って来て"&"でsplitして"="でsplitして、value部をdecodeURIComponentして...など。

と言う部分を具体的に教えて欲しかったのですが・・。

2009/10/30 13:30:18
id:kebo987654 No.2

回答回数38ベストアンサー獲得回数10

ポイント27pt

JQueryではありませんが、”location.search”でurlの”?”以降がとれるので、それを弄って”?”を取り除けばよいと思います。

サンプルコード

// "?"以降を取得
var parameter = location.search;
// "?"を除いた文字列を得る
parameter = parameter.substring( 1, parameter.length );
// URIをデコードする
parameter = decodeURIComponent( parameter );
// アラートを表示
alert( parameter );
id:kt26

ありがとうございます。参考にします。

2009/10/31 14:35:56
id:mattn No.3

回答回数104ベストアンサー獲得回数23

ポイント26pt

少し適当ですが、これで分かりますか?

// URLからパラメータ部をハッシュマップで返す
function getParametersFromURL(url) {
	var params = {};
	// パラメータを持っているか
	if (url.match(/https?[^?]+\?([^#]*)/)) {
		var query = RegExp.$1;
		// & で分割
		var arr = query.split('&')
		for (var n in arr) {
			// AAA=BBB の形式か
			if (arr[n].match(/^([^=]+)=(.*)$/)) {
				// params オブジェクトに値をでコードしながら格納
				params[RegExp.$1] = decodeURIComponent(RegExp.$2);
			}
		}
	}
	return params;
}

var url = 'http://www.google.com/search?hl=ja&q=jQuery&btnG=%E6%A4%9C%E7%B4%A2#test';
var params = getParametersFromURL(url);
alert(params['hl']);   // ja
alert(params['q']);    // jQuery
alert(params['btnG']); // 検索
id:kt26

ありがとうございます。参考にします。

2009/10/31 14:36:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません
${title} {{if price }}
${price}円
{{/if}}