ここから本文です

表示中のURLのクエリ文字列部分を修正してjQueryの要素に格納する方法例えば現在ht...

ilu********さん

2015/5/102:17:08

表示中のURLのクエリ文字列部分を修正してjQueryの要素に格納する方法例えば現在http://hogehoge.com/hoge.html?q=003&q=005&q=012&q=013というサイ

トを表示しているとします。(クエリが複数のqで冗長ですがとりあえずそこは目を瞑ってください)
この表示中のURLから、003、005、012、013といった部分のみを取り出して、jQueryで任意の要素に格納したいと考えています。
プラグイン(http://www.cyokodog.net/blog/parse-url-doc/)を利用しています。
var m = $.parseURL();
var y = m.search;
とすることでyという変数の中に「?q=003&q=005&q=012&q=013」という文字列が格納されている状態です。(この時点ですでに間違っているのかもしれませんが・・・)
ここから「?q=」を削除し、「&q=」を「,」に置換した後でsplit関数で
var x = y.split(",");することでxという要素の中に003から013までの文字列が格納されると考えましたがどうもうまく行きません。削除や置換がうまく行っていないような気もするのですが何かうまい方法はありませんでしょうか。

閲覧数:
80
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

2015/5/105:24:31

プラグインに頼るほど大掛かりなことじゃない。JavaScript標準機能だけで書ける。
var source = location.search;
これで"?q=003&q=005&q=012&q=013"が格納される

慎重版
for(var result = [],pattern = /q=([^&]*)/g,matcher;matcher = pattern.exec(source);){result.push(matcher[1]);}
resultに["003", "005", "012", "013"]が格納される

簡単版。q以外のパラメタもあるとバグる
var result = location.search.substring(3).split("&q=");

必要ならdecodeURIComponentも使いましょう

そのparseURLというプラグインでは同じパラメタが複数ある時に1つまでしか取り出せないらしい
$.parseURL("h"+"ttp://hogehoge.com/hoge.html?q=003&q=005&q=012&q=013")
← Object {q: "013"}

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる