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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

2回答

4499閲覧

HTMLにおいてoptionのvalueを取得し画像を変更する

hain

総合スコア25

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

0クリップ

投稿2017/08/27 14:54

HTML/JavaScriptにて、ドロップダウンメニュー内の選択された項目により別々に画像を変更したいです。

JavaScript

1 <script> 2 function Changeimg() { 3 var R1 = document.formname.selectname.value 4 if( R1 =01){ 5 document.getElementById('img01').src="images/2.png"; 6 } 7 function Changeimg2() { 8 var R2 = document.formname.selectname.value 9 if( R2 =03){ 10 document.getElementById('img03').src="images/4.png"; 11 } 12 function Changeimg3() { 13 var R3 = document.formname.selectname.value 14 if( R3 =05){ 15 document.getElementById('img05').src="images/6.png"; 16 } 17 18 これを選択肢の数だけ書きました(20個ほどあります)19 ちゃんと動いたらelseifで書き換えようと思っています。 20 </script>

Body内のドロップダウンメニューは

HTML

1<form name="formname"> 2 <select id=”test” name="selectname"> 3 <option value=”noon”></option> 4 <option value=”01”>1</option> 5 <option value=”03”>3</option> 6 <option value=”05”>5</option> 7 </select> 8</form>

で作りました。
変更したい画像はページの少し遠い位置にあり

HTML

1 <div class="mae" onchange="Changeimag1(),Changeimg2() ,Changeimg3();"> 2 <img src="images/1.png" id="img01" class="pos"> 3 <img src="images/3.png" id="img03" class="pos"> 4 <img src="images/5.png" id="img05" class="pos"> 5 </div> 6

となっています。

どこで問題が起きているかわからず困っています。
if分の書き方なのか、valueの取得方法が間違っているのか…

また、ドロップダウンメニューは内容が同じで3つ設置していますので
1,3,5のすべてが選択された場合はすべての画像が変更されるようにしたいです。

何卒ご教授よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

JavaScript

1if( R1 =01){

=代入を表す演算子です。
両辺の等価性を表すには === を用います。

HTML

1<div class="mae" onchange="Changeimag1(),Changeimg2() ,Changeimg3();">

div要素に onchange 属性はありません。
それはselect要素で機能する属性です。
addEventListener を使った方が利便性が高いですが、後で学習予定があるなら、このままでも良いかも知れません。
(両方覚えておくに越したことはありません。)

コンストラクタではない関数は小文字から始まる名前に命名する慣習があり、そうすることで他の人からも静的関数である事が明らかになります。

Changeimag1(),Changeimg2() ,Changeimg3();else-if で条件分岐をまとめれば、一つの関数にまとめられます。

Changeimag1()ReferenceError ですね。
typoが多いようなので、開発者ツールでコンソールを確認したり、コードに誤字がないか、よく確認するようにしましょう。

Re: hain さん

投稿2017/08/27 23:39

編集2017/08/27 23:48
think49

総合スコア18162

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

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

hain

2017/08/29 13:45

要素ごとの開設など詳しくありがとうございました!onchangeはdivでは使えないということはdiv内の画像変更は不可能ということでしょうか…
think49

2017/08/29 14:04

違います。 onchangeは「変更されたら~をする」という属性ですが、div要素は変更されるべき選択肢を持たず、逆に「変更されたら~する」の「~する」の対象の側ですよね。 Changeimg3()はselect要素が変更されたら実行されるべき関数ですが、div要素はselect要素ではありませんよね。 根本的な部分から誤解があるように思われますので、お手持ちのJavaScript書籍をお読みになるか、リファレンスとなるサイトをご覧になる事をお勧めします。 おそらく、今質問しても根底にある基礎知識のずれから回答内容が上手く伝わらないと思います。
hain

2017/08/29 14:11

ご丁寧に回答ありがとうございます。一度読み返してみます!
guest

0

全角のが紛れています。

JavaScript

1function Changeimg() { 2 var R1 = document.formname.selectname.value 3 // ↓ ↓全角 4 if( R1 =01){ 5 document.getElementById('img01').src="images/2.png"; 6 }

HTML

1<form name="formname"> 2 <!-- ↓ ↓全角 (他も見直して見ましょう) --> 3 <select id=”test” name="selectname"> 4 <option value=”noon”></option> 5 <option value=”01”>1</option> 6 <option value=”03”>3</option> 7 <option value=”05”>5</option> 8 </select> 9</form>

投稿2017/08/27 14:57

kei344

総合スコア69400

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

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

hain

2017/08/29 13:44

ありがとうございます!全部確認します!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問