[解決済み] JS: Array.forEachを使用してgetElementsByClassNameの結果を反復処理する。
2022-02-01 06:42:51
質問
いくつかのDOM要素に対して反復処理を行いたいのですが、このように行っています。
document.getElementsByClassName( "myclass" ).forEach( function(element, index, array) {
//do stuff
});
が、エラーになる。
document.getElementsByClassName("myclass").forEach is not a function.
私はFirefox 3を使用しているので、両方の
getElementsByClassName
と
Array.forEach
が存在します。これは問題なく動作します。
[2, 5, 9].forEach( function(element, index, array) {
//do stuff
});
の結果ですか?
getElementsByClassName
は配列ですか?そうでない場合、それは何ですか?
どのように解決するのですか?
いいえ。
DOM4 で指定された
であれば、それは
HTMLCollection
(少なくともモダンブラウザでは。古いブラウザでは
NodeList
).
すべてのモダンブラウザ(IE <= 8 以外はほぼすべて)で、Array の
forEach
メソッドに、要素のリスト(
HTMLCollection
または
NodeList
) を
this
の値を指定します。
var els = document.getElementsByClassName("myclass");
Array.prototype.forEach.call(els, function(el) {
// Do stuff here
console.log(el.tagName);
});
// Or
[].forEach.call(els, function (el) {...});
ES6を使用できる幸せな立場にある場合(つまり、Internet Explorerを安全に無視できるか、ES5トランスパイラを使用している場合)、以下のように使用することができます。
Array.from
:
Array.from(els).forEach((el) => {
// Do stuff here
console.log(el.tagName);
});
関連
-
[解決済み] 解決済み】clearInterval()が動作しない [重複] [重複]
-
[解決済み】ある要素が可視DOMに存在するかどうかを確認するにはどうすればいいですか?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] Array.forEachでbreakを呼び出すようなショートサーキット
-
[解決済み] どのDOM要素にフォーカスがあるかを調べるには?
-
[解決済み] jQueryでドロップダウンリストの選択値を変更する
-
[解決済み] cursor.forEach()内の "continue"。
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み】PHPでforeachループを使用しながら配列の最後の要素を検索する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javascript:getElementById対getElementsById(両方が別のページで動作する)。
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】React-Routerの子が1つしかない。
-
[解決済み】リソースはドキュメントと解釈されるが、MIMEタイプはapplication/zipで転送される
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み】未定義のプロパティ 'forEach' を読み取ることができない
-
[解決済み] querySelectorAllメソッドとgetElementsBy*メソッドは何を返すのですか?
-
[解決済み] getElementsByClassName を正しく反復処理する方法