[JavaScript]no-Limit-構文エラー
1923 ワード
Javascriptメソッド
getElementsByClassName
を使用して、同じクラスを持つ複数の要素のリストを巡回します.そして、コードの赤い線が引き出されるにつれて、クロム画面には以下のように説明されています.getElement
s
の名前から分かるように、このメソッドは、HTML Collectionというリストを返します.HTML Collectionは配列と類似しており、.length
に類似した属性もありますが、配列ではありません.ここでHTML Collectionに対して
for...in
文を使用すると、オブジェクトのすべてのiterableプロパティに対して繰り返し操作が実行されます.しかし、HTML Collectionでは、私が望んでいるものではありませんが、iterableプロパティがいくつか存在するため、「重すぎる」というエラーメッセージが表示されます.コンソールウィンドウでHTML Collectionを撮影すると、こんなに多くのプロパティが表示されますが、1つの画面がすべてキャプチャされていないだけで、HTML Collectionの各要素には2倍以上のプロパティがあります...!重すぎると言えます.
したがって,以下のようにコードを修正するのが最もよい.
const selectedItems = document.getElementsByClassName('selected');
Array.from(selectedItems).forEach(selectedItem => {
...
});
ここで、Array.from()
メソッドは、HTML collectionなどの類似配列オブジェクトまたはiterableオブジェクトを浅いコピーして、新しい配列オブジェクトを作成する役割を果たす.その後、forEach()
メソッドを使用してアレイ内の各要素を巡回し、必要なコードを記述することができる.参考になる文章
https://stackoverflow.com/questions/22754315/for-loop-for-htmlcollection-elements
https://developer.mozilla.org/ko/docs/Web/API/Element/getElementsByClassName
https://developer.mozilla.org/ko/docs/Web/API/HTMLCollection
Reference
この問題について([JavaScript]no-Limit-構文エラー), 我々は、より多くの情報をここで見つけました https://velog.io/@wonyuuu/JavaScript-no-restricted-syntax-에러テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol