
以下に記述しているHTMLとJavaScriptでは
valueの値、red, blue, yellowしか取得できません。
HTMLからvalue属性を外すと”on”しか出てきません。
このようなHTMLが記述されている場合、どうすればラベル名(赤、青、黄)を取得できますか?
分かる方いらっしゃいましたら教えて下さい。
宜しくお願いします。
(HTML)
<input type="radio" name="color" value="red">赤
<input type="radio" name="color" value="blue">青
<input type="radio" name="color" value="yellow">黄
<button>Add!</button>
<ul>
</ul>
-------------------------------------
(JS)
'use strict';
{
document.querySelector('button').addEventListener('click', () => {
const colors = document.querySelectorAll('input');
let selectedColor;
colors.forEach(color => {
if (color.checked === true) {
selectedColor = color.value;
}
});
const li = document.createElement('li');
li.textContent = selectedColor;
document.querySelector('ul').appendChild(li);
});
}

A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No1です
こっちの方がちょっとだけ短いかも。
document.querySelector('button').addEventListener('click', ()=>{
let s = document.querySelector('input:checked');
if(s){
const li = document.createElement('li');
li.textContent = s.nextSibling?s.nextSibling.textContent:"";
document.querySelector('ul').appendChild(li);
}
});
No.1
- 回答日時:
こんにちは
表示文字とinput要素は単に並んでいるだけで、包含関係などはない上に#textはHTML要素(=HTMLElement)でもないので、ご提示のままだとちょっと面倒ですね。
document.querySelector('button').addEventListener('click', ()=>{
let s = document.querySelector('input:checked');
if(s){
let c = s.parentNode.childNodes;
const li = document.createElement('li');
li.textContent = c[[...c].indexOf(s)+1].textContent;
document.querySelector('ul').appendChild(li);
}
});
HTMLの構成を
<label><input type="radio" name="color" value="red">赤</label>
などにしておくほうが、確実かつ簡単になると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストフィールド未入力の場...
-
getElementsByNameについて
-
ボタン無しでフォーム内容送信
-
ラジオボタンによる内容の振り分け
-
【jQuery】input nameの文字列...
-
submitがおされた同時に JavaSc...
-
<form action="#">の意味とは?
-
JSPとJavaScriptの連携について...
-
ラジオボタンのリセット方法
-
条件により、リンク先に画面遷...
-
ボタンが押されると同時にデー...
-
ハイパーリンクを別ウインドウ...
-
プルダウンメニューのvalue値を...
-
HTMLで入力したものを変数で扱...
-
javascriptで画像の移動
-
一度しか押せないボタンについて
-
現在時刻を表示させたい!
-
jQueryを使った診断チェックシート
-
度胸試しのJavaScript
-
特定<table>内の<td>の色を変える
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
JavaScriptのfileオブジェクト...
-
javaScriptの変数をJavaの変数...
-
VB.NETで<Input>タグ、<text...
-
onclickが動作しない
-
formのfileの値をhiddenでも持...
-
追加ボタンを押した際に ok ボ...
-
クリックさせたいが、click()が...
-
onClickがinput type="image"だ...
-
BackSpaceしたい(QNo.2734284の...
-
同じページでgetElementsを複...
-
Javascriptでフィールドを埋め...
-
困っています。
-
「ボタン」の幅の長さ
-
JavaScriptのロジック?
-
<input type="file"/>
-
CHECKBOXとTEXTBOXのnameが同じ...
-
vbscriptでIE自動入力(コンボ...
-
setIntervalについて
-
JQueryでfunctionに引数としてI...
おすすめ情報