ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で「getElementsByClassName()」の結果を正しく反復処理する方法

JavaScript で「getElementsByClassName()」の結果を正しく反復処理する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-12-01 06:07:13441ブラウズ

How to Correctly Iterate Over `getElementsByClassName()` Results in JavaScript?

エラー: getElementsByClassName() Array.forEach による結果の反復

getElementsByClassName() と Array を使用して DOM 要素を反復しようとしたとき。各メソッドでは、getElementsByClassName() が実行するため、ユーザーはエラーに遭遇する可能性があります。配列は返されません。

getElementsByClassName() の結果は HTMLCollection ですが、最新のブラウザーでは配列とは異なります。この問題を解決するには、forEach を使用する前に HTMLCollection を配列に変換します。これは、次のメソッドで実現できます:

  • Array.prototype.forEach で call() を使用する:
var els = document.getElementsByClassName("myclass");
Array.prototype.forEach.call(els, function(el) {
  // Do stuff here
  console.log(el.tagName);
});
  • 使用中`[].forEach.call():
[].forEach.call(els, function (el) {
  // Do stuff here
  console.log(el.tagName);
});
  • `Array.from() の使用 (ES6)**:
Array.from(els).forEach((el) => {
  // Do stuff here
  console.log(el.tagName);
});

以上がJavaScript で「getElementsByClassName()」の結果を正しく反復処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。