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

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

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

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

Q&A

解決済

1回答

988閲覧

Javascript: selectで選択した配列の要素数を取得した

rails_ruby

総合スコア87

JavaScript

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

0グッド

0クリップ

投稿2019/02/11 02:49

編集2019/02/11 03:24

前提・実現したいこと

セレクトボックスで選択した値の配列要素数を取得する方法について知りたい。

該当のソースコード

html

1<select id="select"></select>

js

1//セレクトボックス 2var week = [ "日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日" ]; 3 4for(var i=0;i<week.length;i++){ 5let op = document.createElement("option"); 6op.text = week[i]; 7document.getElementById("select").appendChild(op); 8} 9 10window.addEventListener('DOMContentLoaded', function(){ 11 document.querySelector('#btn_date').addEventListener('click',function(){ 12 13 var dObj = new Date(); 14 var wDay = dObj.getDay(); 15 console.log(week[wDay]); 16 17 const str = document.getElementsByName("select").value; 18 19 console.log(wDay);//1 20 console.log(week.length);//7 21 console.log(wDay === week.length);//falese 22 23 }); 24});

分からないこと

セレクトボックス内で選択した値の要素数を取得する方法が分からないです。
例)
月曜日を選択したのならば要素番号の1を取得したいです。

###追記
findIndexを使って下記のように書いてみたのですが、文法エラーになってしまいました。
要素番号を見つけるメソッドとしてはあっていると思うのですが、文法について正しい書き方がわかりません。
console.log(week.findIndex(str));

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

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

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

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

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

guest

回答1

0

ベストアンサー

optionを作る時にvalueを設定したらstrの箇所で採れるでしょう。

<option> - HTML: HyperText Markup Language | MDN】
https://developer.mozilla.org/ja/docs/Web/HTML/Element/option

投稿2019/02/11 03:06

kei344

総合スコア69364

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

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

rails_ruby

2019/02/11 03:13

リンク先を参照させて頂きましたが私の頭では理解できませんでした。 コンソールで見ると選択した曜日が表示されているので、その曜日の文字列ではなく配列番号を取得する方法に関してご教示いただけないでしょうか? console.log(str);
kei344

2019/02/11 03:21

>コンソールで見ると選択した曜日が表示されているので どれを選択しても「月曜日」しか表示されないでしょう。確認してみてください。 > その曜日の文字列ではなく配列番号を取得する方法に関してご教示いただけないでしょうか? だから「valueを設定」と書いているのに・・・。HTMLの要素リファレンスを提示したのは設定できる値を確認してもらえればと思ったんですが、余計にわかりにくかったようですね。 https://jsfiddle.net/g7f1honm/ ↑getElementsByNameとか使ってる部分は修正して有ります。
kei344

2019/02/11 03:27

To: 追記 だから「wDay」の値は「本日の曜日」固定だから問題はそこじゃない。
kei344

2019/02/11 03:35

To: 追記 さっきのコメントは私が読めていなかっただけでした、すみません。 strを取得するのにgetElementsByNameを使用していますが、そんな名前の要素があるのでしょうか。
rails_ruby

2019/02/11 03:35

すいませんでした。 追記したタイミングと回答して頂いたタイミングが重なってしまいました。 op.value = i;でvalueを取得しているのですね。 今日初めて、jsでセレクトボックスを出力できたばかりなのでそのような書き方について知りませんでした。
rails_ruby

2019/02/11 03:42

const str = document.getElementsByName("select").value;に関しては、私の知識不足のためidでは配列番号を取得できないのではないかと思い、idからgetElementsByNameに変更して色々試している過程でgetElementsByNameのまま質問を投稿していただけなので特にそのような要素はございません。 なんどもなんども私のために、コメントや回答して下さりありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問