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

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

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

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

JavaScript

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

Q&A

解決済

2回答

4665閲覧

HTMLのラジオボタンの選択肢を上書きしたい

michiaki

総合スコア29

HTML5

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

JavaScript

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

0グッド

0クリップ

投稿2016/08/12 02:13

###前提・実現したいこと
html+javascriptで2択のクイズを作成しています。
選択肢を上から上書きしたいです。

###発生している問題・エラーメッセージ
エラーメッセージは特になし(表示されません)
id="que"の方はうまく変更されていますが、id="choice1"のラジオボタンの方がうまく変更できません。

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

/*---HTML---*/ <body> <div> <h1>問題集1</h1>> <p id="que">ここに問題が表示されます</p> <div> <input id="choice1" type="radio" name="choice">○○○<br></div> <div> <input id="choice2" type="radio" name="choice">×××</div> <div><input type="button" value="回答する" onclick="button_click();"></div> </div> </body> /*---javascript---*/ window.addEventListener("load",function() { document.getElementById('que'). innerHTML = "文字列の変更を行います"; document.getElementById('choice1').innerHTML ="選択肢A"; },false); function button_click() { var radio = document.getElementById('choice1'); if(radio.checked) { console.log("正解"); }else { console.log("間違い"); }

###試したこと
htmlやjavascriptの書籍等を見ましたが理解できませんでした。

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

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

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

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

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

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

guest

回答2

0

ベストアンサー

「○○○」を「選択肢A」に書き換えたいという趣旨でよろしいでしょうか?
この場合◯◯◯はid=choice1に包含されておらずとなりのノードです
したがって今回のケースであればこうするとよいでしょう

javascript

1window.onload=function() { 2 document.getElementById('que').innerHTML = "文字列の変更を行います"; 3 document.getElementById('choice1').nextSibling.nodeValue="選択肢A"; 4};

なお、選択肢Aに変更後、ラジオボタンのvalueを変更するのであれば
別途

javascript

1document.getElementById('choice1').value="A"; 2 3```的な処理を入れればよいでしょう

投稿2016/08/12 03:21

yambejp

総合スコア114779

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

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

michiaki

2016/08/12 05:04

ご回答ありがとうございました。 私の理解では、上の<p>と同じタグ付けしたつもりですが、実際は隣のノード?にタグかあるいは隣のタグに直接操作する必要があるんですね。 ラジオボタンのアドバイスまで頂いたのでベストアンサーにさせて頂きます。
guest

0

別案として、label要素をつけるという方法とか。

HTML

1<div> 2 <h1>問題集1</h1> 3 <p id="que">ここに問題が表示されます</p> 4 <div><input id="choice1" type="radio" name="choice"><label for="choice1">○○○</label><br></div> 5 <div><input id="choice2" type="radio" name="choice"><label for="choice2">×××</label></div> 6 <div><input type="button" value="回答する" onclick="button_click();"></div> 7</div>

JavaScript

1window.addEventListener( 'load', function() { 2 document.getElementById( 'que' ).innerHTML = "文字列の変更を行います"; 3 document.querySelector( 'label[for="choice1"]' ).innerHTML = "選択肢A"; 4}, false ); 5```**動くサンプル:**[https://jsfiddle.net/ufxpsdaa/](https://jsfiddle.net/ufxpsdaa/)

投稿2016/08/12 04:23

kei344

総合スコア69400

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

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

michiaki

2016/08/12 04:57

ご回答ありがとうございました。 ○○○はIDが実質的についていないという理解でいいのでしょうか? やりたいことはできました。
kei344

2016/08/12 05:03

> ○○○はIDが実質的についていない 付いていません。 要素を取得する手段として、getElementById(IDで取得)/ getElementsByClassName(クラス名で取得)/ querySelector / querySelectorAll などがあり、今回使った querySelector は「CSS セレクタにマッチする文書中の最初の要素」を取得するものです。
michiaki

2016/08/13 00:35

ご回答ありがとうございます。 inputタグにIDがついて後の○○○は別のタグ付けが必要ということですね。 わかりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問