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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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

Q&A

解決済

3回答

17353閲覧

JavaScriptでoptionタグを追加する方法が分かりません

Alt

総合スコア7

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2016/08/23 07:39

編集2016/08/23 09:43

###前提・実現したいこと

htmlとJavaScriptで開発をしています。
htmlで書いたcomboBoxにJavaScriptからoptionを設定したいのですが、
上手く動きません。
尚、valueも同じ値を設定したいです。
初心者のため、上手く伝えられないのですが、
ご教授いただければ幸いです。
コードが長くなってしまっているので、問題があると思われる部分のみ
抜粋させていただきます。

###発生している問題・エラーメッセージ

JavaScriptの初めでコンボボックスを読み込んでいるつもりなのですが、
あまり構造を理解していないこともあり、
読み込めていない気がしています。
問題が特定できておらず、申し訳ないです。

###該当のソースコード

HTML

1 2ご回答頂きありがとうございました 3無事解決いたしました 4

###試したこと

alertをfor文の前に設置して挙動を確認してみたのですが、
[object NodeList]と表示されるのみで、
検索してみてもこの動作が正しいのか分かりませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)

開発環境はWindows8、Microsoft Visual Studioです。

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

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

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

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

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

guest

回答3

0

ベストアンサー

JavaScript

1function setTest() { 2 var sel = document.getElementsByName("sel"); // ← document.getElementById のほうがこの場合いいはず。 3 var num = [10, 20, 30, 40, 50]; 4 for (var k = 0; k < num.length; k++) { 5 var option_add = document.createElement("option"); 6 option_add.setAttribute("value", num[k]); // option ⇒ option_add 7 option_add.innerHTML = num[k]; // option ⇒ option_add 8 sel[0].appendChild(option_add); // getElementsByNameなのでHTMLCollectionが返るから [0] でアクセス。& option ⇒ option_add 9 10 } // ← 不足 11} 12```**動くサンプル:**[https://jsfiddle.net/m1m9e7bx/](https://jsfiddle.net/m1m9e7bx/) 13

投稿2016/08/23 07:58

編集2016/08/23 07:58
kei344

総合スコア69606

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

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

Alt

2016/08/23 09:41

>>kei344様 間違いの部分、また直した方がいい所まで丁寧に教えていただき、 ありがとうございます。 また、サンプルもありがとうございます。 教えていただいた通りに訂正したところ、1時間ほど悩んでいた部分が 無事解決いたしました。 とても助かりました。 この度は本当にありがとうございました。
guest

0

こんな感じで

javascript

1<script> 2function setTest() { 3 var sel = document.getElementById("sel"); 4 var num = [10, 20, 30, 40, 50]; 5 for (var i = 0; i < num.length; i++) { 6 var n = document.createElement("option"); 7 n.setAttribute("value", num[i]); 8 n.appendChild(document.createTextNode(num[i])); 9 sel.appendChild(n); 10 } 11} 12window.onload=function(){setTest()}; 13</script>

html

1<select name="sel" id="sel"> 2<option value=1>1</option> 3</select>

投稿2016/08/23 07:57

yambejp

総合スコア116736

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

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

Alt

2016/08/23 09:37

>>yambejp様 ご回答ありがとうございます。 window.onload=function(){setTest()};は初めて見るコードだったので、 とても勉強になりましたし、参考にもなりました。 ご教授、ありがとうございます。
guest

0

javascript

1select.appendChild(option);

javascript

1sel.appendChild(option);

投稿2016/08/23 07:41

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Alt

2016/08/23 07:47

>>Kosuke_Shibuya様 ご回答頂きありがとうございます。 教えていただいた部分を修正しましたが、まだ上手く挙動しません。 (comboboxにoptionが追加されていないようです) 自分でも分からなかった部分の訂正をいただけて、とても助かりました。 本当にありがとうございます。
退会済みユーザー

退会済みユーザー

2016/08/23 07:48

プログラムの全体を、提示してください。部分だけを切り取っても、書く順番で挙動も変わります。
Alt

2016/08/23 07:54

>>Kosuke_Shibuya様 少しお時間いただきますが、質問内容のコードを訂正させていただきます。 元のコードとは名前が異なりますが、ご容赦ください。 また、自分でもいろいろ試してしまったため、中途半端になっている部分も存在します。 申し訳ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問