質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

911閲覧

複数のセレクトボックスを監視し、選択が変更される度hrefの内容を書き換えたい。

mikankkk

総合スコア11

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2017/11/17 12:25

###前提・実現したいこと
お世話になります。
下記のような二つのセレクトボックスとリンクがあったとして、
セレクトボックスの選択が変更される度に対応するvalue値をリンクのURLパラメータに入れたいのですが、jQueryをどう書けばよいかわかりません。

【動きのイメージ】
・ページ読み込み時、URLパラメータはセレクトボックスの最初の値が既に入っている。
(例でいうとセレクトボックスはIと赤が選択されている状態で、URLパラメータはnumber=111&color=red)
・ユーザーがnumberのセレクトボックスをIIに変更した際、URLパラメータはnumber=222&color=redとなる。
※同様にcolorが変更された場合はcolorのパラメータのみが変わる。

【HTML】
<select id="number">

<option value="111">I</option> <option value="222">II</option> <option value="333">III</option> </select> <select id="color" name="color"> <option value="red">赤</option> <option value="blue">青</option> <option value="white">白</option> </select> <a class="test" href="http://hoge.hoge/?number=&color=">test</a>

###試したこと
jQueryの.replaceを使おうとしましたが、複数のセレクトボックスを対象とする場合のコードがよくわかりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

すなおにやればこんな感じでは?

javascript

1$(function(){ 2 var href="http://hoge.hoge/"; 3 $('#number,#color').on('change',function(){ 4 var number=$('#number').val(); 5 var color=$('#color').val(); 6 $('#test').prop('href',href+"?number="+number+"&color="+color); 7 }); 8});

HTML

1<select id="number"> 2<option value="111">I</option> 3<option value="222">II</option> 4<option value="333">III</option> 5</select> 6<select id="color" name="color"> 7<option value="red">赤</option> 8<option value="blue">青</option> 9<option value="white">白</option> 10</select> 11<a id="test" href="http://hoge.hoge/?number=&color=">test</a>

投稿2017/11/17 12:34

yambejp

総合スコア114775

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mikankkk

2017/11/17 12:59

yambejp様 早速のご返信ありがとうございます! コード確認させていただきました。思い通りの動きになりそうです! ただ当方の環境では最初に読み込んだ時のURLのパラメータが「number=&color=」のように値が入っていない状態になってしまいます・・・。 大変恐れ入りますが、解決方法をお教えいただけないでしょうか?
yambejp

2017/11/17 13:06

もしかして、load時には初期で選ばれているnumberとcolorを反映したかったですか? もしそうならtriggerでchangeをよんでやればいいでしょう $(function(){ var href="http://hoge.hoge/"; $('#number,#color').on('change',function(){ var number=$('#number').val(); var color=$('#color').val(); $('#test').prop('href',href+"?number="+number+"&color="+color); }).trigger('change'); //←ココ });
mikankkk

2017/11/17 13:06

yambejp様 すいません、自己解決できました! この度はありがとうございます。
mikankkk

2017/11/17 13:09

yambejp様 ご連絡ありがとうございます。 教えていただいたコードですべてうまくいきました! 感謝いたします!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問