HTML上のテーブルの1行に左端にボタンがあり、これを押すことで右方向にあるドロップダウンリストを開いた状態にしたいと思います。何行もあり、forで回しての処理中の話となります。
html
1<td class="align-middle"><button class="btn btn-light" value="1" onclick="sentaku(this)">ア行</button></td> 2<td class="align-middle"> 3 <div class="dropdown"> 4 <button class="btn btn-secondary dropdown-toggle" id="gender" type="button" data-toggle="dropdown"> 5 異常なし 6 </button> 7 <div class="dropdown-menu"> 8 <button class="dropdown-item" value="">あいうえお</button> 9 <button class="dropdown-item" value="">かきくけこ</button> 10 <button class="dropdown-item" value="">さしすせそ</button> 11 12 </div> 13 </div> 14 </td>
bootstrapのクラスでshowを追加で表示自体はされるのですが、選択肢を押した後リストが表示され続けて消えてくれません。
javascript
1function sentaku(obj){ 2 console.log(obj.closest('tr')); 3 let DropMenu = obj.closest('tr').querySelector('.dropdown'); 4 DropMenu.classList.add('show'); 5 let DropMenu1 = obj.closest('tr').querySelector('.dropdown-menu'); 6 DropMenu1.classList.add('show'); 7 }
aria-expanded="false"の項目もtrueにしようとしたのですがよくわからないエラーが出て困っています。
考え方に間違えがあるのか、正しいやり方はどんなものがあるか教えてもらえないでしょうか。
加筆します。
id="gender"のbuttonを押下することで<div class="dropdown">と<div class="dropdown-menu">のクラスにshowが付き、<div class="dropdown-menu">内の項目が表示されます。これを選択することでid="gender"のbuttonの文字列が選択した文字列に置き換えられます。
これ自体はbootstrapの参考記述をまねて書きましたので、細かく説明ができません、申し訳ありません。