teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

表現の修正

2021/10/02 03:53

投稿

think49
think49

スコア18194

answer CHANGED
@@ -15,8 +15,8 @@
15
15
 
16
16
  そして、次の改善を加えると、
17
17
 
18
- - clickイベントハンドラ関数を2回定義されている部分を1回定義して変数にキャッシュ
18
+ - clickイベントハンドラ関数を2回定義ている部分を1回定義して変数にキャッシュ」に変更
19
- - 「class="js-open"」の要素をclickする度に検索しているので変数にキャッシュ
19
+ - 「class="js-open"」の要素をclickする度に検索している部分を「変数にキャッシュ」に変更
20
20
 
21
21
  下記コードになります。
22
22
 

1

querySelectorAll() の第一引数に配列を渡しても動作する理由

2021/10/02 03:53

投稿

think49
think49

スコア18194

answer CHANGED
@@ -62,6 +62,9 @@
62
62
  </script>
63
63
  ```
64
64
 
65
+ `querySelectorAll()` の第一引数に配列を渡しても動作するのは、querySelectorAll() が内部的にString型への変換を行っており、変換後の文字列が「カンマ区切りのセレクタ文字列」になる為です。
66
+ 「カンマ区切りのセレクタ文字列」(`'.header__nav-btn,.cover-darken'`)を渡しても同じ結果となりますが、質問文のコードはクラスセレクタを個別に管理していた為、ここでは配列としました。
67
+
65
68
  初めに下記要件を定義しましたが、これは「class="js-open"」な要素が複数存在した場合、`querySelector('js-opened')` によって初めの一つにのみ反応するからです。
66
69
 
67
70
  - 「class="js-open"」な要素が文書内に1個