どうやって使うの?DOM要素のforeach ?
4468 ワード
このポストのタイトルは、私が最初にgoogledしたものです.ここで何が私をそこに得たか
私は、イベントリストのためにローカル時間を表示することに取り組んでいました(まだPRをしませんでした).そのために、すべての要素にタイムスタンプを付けてクラスを追加しました.
最終的に、私は
私は、おそらく「特異性のためにノイローゼを通してループする方法」をgoogledしなければなりませんでした.とにかく、こう書いてみました.
彼は、簡単な
私は、イベントリストのためにローカル時間を表示することに取り組んでいました(まだPRをしませんでした).そのために、すべての要素にタイムスタンプを付けてクラスを追加しました.
<span class="utc-time"><%= event.starts_at %></span>
私は、ページ上のすべてのタイムスタンプを取得し、ループを介してループし、ローカル時間を反映するためにinnerHTML
を更新します.私は通常、ループのものを必要とするときにfor
のステートメントを使用しますが、私は.forEach
関数を試してみることにしました.var timestamps = document.getElementsByClassName("utc-time");
timestamps.forEach(function(timestamp) {
localTime = updateLocalTime(timestamps[i].innerHTML);
timestamps[i].innerHTML = localTime;
});
私は、このエラーを得ました:最終的に、私は
timestamps
が配列ではないことを理解しました.Although NodeList is not an Array, it is possible to iterate on it using
forEach()
. It can also be converted to an Array usingArray.from()
.However some older browsers have not yet implemented
NodeList.forEach()
norArray.from()
. But those limitations can be circumvented by usingArray.prototype.forEach()
(more in this document).
私は、おそらく「特異性のためにノイローゼを通してループする方法」をgoogledしなければなりませんでした.とにかく、こう書いてみました.
Array.prototype.forEach.call(timestamps, function (timestamp) {
localTime = updateLocalTime(timestamp.innerHTML);
timestamp.innerHTML = localTime;
});
そして、それは働いた!しかし、私がそれを示したとき彼は、簡単な
for
声明が働いただろうと私に言いました.そして、おそらく少しより安全でしょう.なので私は一番よく知っていたことに戻りました. for (var i = 0; i < timestamps.length; i++) {
localTime = updateLocalTime(timestamps[i].innerHTML);
timestamps[i].innerHTML = localTime
}
少なくとも今日はNodelistsについて何かを学んだツ)_/¯Reference
この問題について(どうやって使うの?DOM要素のforeach ?), 我々は、より多くの情報をここで見つけました https://dev.to/jess/how-do-i-use-foreach-on-dom-elements-3m9hテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol