質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

3回答

522閲覧

JavaScriptでdetailsタグで現在openになっている項目を取得したい

westbom

総合スコア7

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1グッド

1クリップ

投稿2024/02/02 05:41

編集2024/02/02 05:44

今detailsタグを利用し、表示している項目があります。
この複数のdetailsタグの中からボタンを押下した時にopenされているdetailsはどれか判断したのですが、
どのような方法があるかわかりません。

時間が無く、試せてなく、質問だけになってしまうのですが、わかる方教えてください。
よろしくお願いします。

html

1<details> 2 <summary>青い</summary> 3 <dl> 4 <dt>あおい</dt> 5 </dl> 6</details> 7<details> 8 <summary>白い</summary> 9 <dl> 10 <dt>しろい</dt> 11 </dl> 12</details>

また、openした時のみのイベントを取得する方法は可能でしょうか?

maisumakun👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2024/02/02 05:49

ボタンとは?
guest

回答3

0

MDNによれば、<details>は、

  • 開いた状態かを管理するopen属性
  • 開閉が変化したときに発生するtoggleイベント

を持つとのことです。

投稿2024/02/02 05:53

maisumakun

総合スコア146564

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

open 属性の有無で判定できるので、document.querySelectorAll('details[open]') などでいいんじゃないでしょうか。

投稿2024/02/02 05:45

int32_t

総合スコア21929

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんな感じです

javascript

1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 btn.addEventListener('click',()=>{ 4 console.log(document.querySelectorAll('details[open]')); 5 }); 6 document.addEventListener('toggle',({target})=>{ 7 if(target.open){ 8 console.log('open'); 9 } 10 },true); 11}); 12</script> 13<details> 14 <summary>青い</summary> 15 <dl> 16 <dt>あおい</dt> 17 </dl> 18</details> 19<details> 20 <summary>白い</summary> 21 <dl> 22 <dt>しろい</dt> 23 </dl> 24</details> 25<input type="button" id="btn" value="btn">

投稿2024/02/02 06:08

yambejp

総合スコア117698

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

westbom

2024/02/05 06:30

document.addEventListener('toggle',({target})=>{ このイベントで開閉時のイベントを取得できましたが、 どのdetailsがopenしたかわかる方法はありますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問