html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>Document</title> 8</head> 9<body> 10 <form name="checker"> 11 <select name="defence1"> 12 <option value="fire">ほのお</option> 13 <option value="water">みず</option> 14 <option value="grass">くさ</option> 15 </select> 16 <select name="defence2"> 17 <option value="none">なし</option> 18 <option value="fire">ほのお</option> 19 <option value="water">みず</option> 20 <option value="grass">くさ</option> 21 </select> 22 </form> 23 24<script> 25 26</script> 27</body> 28</html>
上のコードのように二つのセレクトボックスがあり、例えば一つ目のセレクトボックスでほのおを選んだとしたら、二つ目のセレクトボックスからは同じほのおの選択肢を削除し、またその状態から一つ目のセレクトボックスでみずを選んだら、二つ目のセレクトボックスからはみずを削除し、削除されていたほのおを再び追加するというふうに、二つのセレクトボックスの選択肢が重複しないようにしたいです。これらをJavaScriptを使って実装したいです。
条件分岐で実装しようと考え試し、選択肢を削除することはできたのですが、選択肢が削除されるたびにインデックス番号がずれるため、うまく削除したい選択肢を削除することができませんでした。また削除されたものを再び追加するという処理のイメージが湧きません。
配列に全タイプ入れて、for or while文でリストを生成、1つ目の選択を感知して選択したものと同じものをfor文で探して削除すればいいというヒントをいただき、検索をかけて調べたのですが、リストを生成し、for文で探すという処理が理解できませんでした。
前述したものを実現するためにはどうすれば良いのでしょうか。答えでなくてもヒントをいただけるだけでも幸いです。(JavaScriptについてまだあまり深く理解できていないため、噛み砕いた説明をしていただけると嬉しいです。)
回答2件
あなたの回答
tips
プレビュー