前提
ページごとに選択肢から一つを選んでいくと
最終ページで分析結果を表示する
診断サイトを作ってみようと思います。
Javascriptは勉強しはじめたばかりで
いろいろな参考サイトを読んで
試行錯誤しているところです。
getElementById と addEventListener で
選択された項目名を取得しようと思うのですが
id で囲われた内側をクリックイベントの対象にしてしまうと
項目の隙間をクリックしたときに null が取得されてしまいます。
null の時は次のページへ飛ばないのでいいか
とも思ったのですが
ブラウザの進む戻るを使われると
null のまま次のページへ行けてしまいます。
CSSで隙間なく項目を並べたらよい気もしますが
ページデザインの選択肢が狭まるのも嫌なので
なんとかならないかと思っています。
JavaScript で
複数の選択肢(a要素やbutton要素)から一つを選んだときに
その項目名を取得する、という
よく使う手法がありましたら
教えていただけないでしょうか。
実現したいこと
- 項目をクリックしたときだけ属性を取得したい
該当のソースコード
html
1<div id="question"> 2 <a data-no="No001" href="index2.html"> 3 <span data-no="No001">No001</span> 4 <img src="img/pic001.jpg" alt="" data-no="No001" /> 5 </a> 6 <a data-no="No002" href="index2.html"> 7 <span data-no="No002">No002</span> 8 <img src="img/pic002.jpg" alt="" data-no="No002" /> 9 </a> 10 <a data-no="No003" href="index2.html"> 11 <span data-no="No003">No003</span> 12 <img src="img/pic003.jpg" alt="" data-no="No003" /> 13 </a> 14</div> 15 16<script> 17 'use strict'; 18 const selected = document.getElementById('question'); 19 selected.addEventListener('click', number, false); 20 function number(event) { 21 let target = event.target; 22 sessionStorage.setItem('question01', target.getAttribute('data-no')); 23 } 24</script>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/11 07:52