[解決済み] getElementsByTagNameから返されるすべての要素をループで処理する方法 [重複].
2023-06-23 18:51:35
質問
から再検索されたすべての要素をループ処理しようとしています。
getElementsByTagName("input")
から再送されたすべての要素をforEachを使ってループしようとしています。なぜこれがFF、Chrome、またはIEで動作しないのか、何かアイデアはありますか?
<html>
<head>
</head>
<body>
<input type="text" value="" />
<input type="text" value="" />
<script>
function ShowResults(value, index, ar) {
alert(index);
}
var input = document.getElementsByTagName("input");
alert(input.length);
input.forEach(ShowResults);
</script>
</body>
</html>
どのように解決するのですか?
nodelistを配列に変換する必要があります。
<html>
<head>
</head>
<body>
<input type="text" value="" />
<input type="text" value="" />
<script>
function ShowResults(value, index, ar) {
alert(index);
}
var input = document.getElementsByTagName("input");
var inputList = Array.prototype.slice.call(input);
alert(inputList.length);
inputList.forEach(ShowResults);
</script>
</body>
</html>
またはforループを使用します。
for(let i = 0;i < input.length; i++)
{
ShowResults(input[i].value);
}
で、ShowResults関数を変更します。
function ShowResults(value) {
alert(value);
}
なぜそのようなことをする必要があるのでしょうか?
JavaScriptのいくつかのオブジェクトは配列のように見えますが、配列ではありません。これは通常、インデックス付きアクセスや長さプロパティは持っているが、配列のメソッドは持っていないことを意味します。例としては、特殊な変数引数、DOM ノードリスト、そして文字列があります。配列のようなオブジェクトと一般的なメソッドでは、配列のようなオブジェクトを扱うためのヒントが紹介されています。
ソース
2019.10.07のUPDATE
現在ES6では
[...inputList].forEach
または
Array.from(inputList)
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] Bashで文字列の配列をループする?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] Node.jsのES6クラスをrequireで作る
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] HTMLCollectionの要素に対してのループ
-
[解決済み] JavaScriptで次の要素/前の要素を取得しますか?
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] node.jsで文字列のsha1ハッシュを取得するにはどうすればよいですか?
-
[解決済み] 文字列とラベルのローカライズとグローバリゼーションのベストプラクティス【終了しました
-
[解決済み] JSHintの'+'前の改行不良の説明
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ