前提・実現したいこと
<detail class="list">にopen属性を与えて、<summary>以外のテキストの表示非表示を切り替えたいです。
javascriptはほぼ初めてなのでお手柔らかにお願いします。
発生している問題・エラーメッセージ
detail id="list"にして.getElementById("list")だと
<detail open>状態で表示されるのですが、
detail class="list"で.getElementsByClassName('list')だと
<detail open>になりません。
該当のソースコード
html
1<details class="list"> 2 <summary>最初に表示させたい文字</summary> 3 <p>クリックしたら表示させたい説明文</p> 4</details>
試したこと
id(open付与ができた)
html
1<details id="list"> 2 <summary>最初に表示させたい文字</summary> 3 <p>クリックしたら表示させたい説明文</p> 4</details>
javascript
1document.getElementById("list").setAttribute("open","open"); 2//結果:<p>クリックしたら表示させたい説明文</p>が表示されている
class(open付与ができなかった)
html
1<details class="list"> 2 <summary>最初に表示させたい文字</summary> 3 <p>クリックしたら表示させたい説明文</p> 4</details>
javascript
1document.getElementsByClassName("list").setAttribute("open","open"); 2//結果:<summary>最初に表示させたい文字</summary>しか表示されない
希望すること
恐れ入りますが、急ぎで解決させたいので、「どうしてうまくいかないのか」の理論だけではなく
「どうやったら実現できるか」にフォーカスを当てたご回答をいただけると幸いです。
追記(2020.10.16)
複数のdetail.listで試すと、先頭のdetail.listのみopen状態になりました。
すべてのdetail.listをopenにする手立て等がありましたら、知恵をお貸ししていただけますでしょうか。
度々すみませんが、何卒お願いいたします。
html
1<details class="list"> 2 <summary>その1</summary> 3 <p>クリックしたら表示させたい説明文1</p> 4</details> 5<details class="list"> 6 <summary>その2</summary> 7 <p>クリックしたら表示させたい説明文2</p> 8</details>
javascript
1document.querySelectorAll('.list').open=true;
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/16 05:21