私は当初、IE または古いブラウザーで関数Array.concat()の結果の機能をシミュレートするエレガントな方法を求めていました。サポートされていないようだったからです。もちろんそうです-返されたオブジェクトがそれをサポートしなかった理由は、それが. おっとっと!getElementsByTagNameconcatArray
getElementsByTagName実際には を返しますNodeList。本当の問題は、ドキュメント内のすべてのフォーム要素 (input、select、textarea、button) の単一のリストを取得してそれらをループする良い方法は何ですか? 配列は必要ありません...単一NodeListでも完璧です。
これは企業のイントラネット用であるため、IE6を使用していることに注意してください(ただし、まもなくIE8になります)。
私が思いついた答えは次のとおりです。
それらを 1 つに詰め込む良い方法について心配するよりも、コードを別の関数に入れ、異なるノードリストで 3 回呼び出す方が簡単になり、おそらくパフォーマンスが向上しました。
私は最終的に MooTools の使用に切り替えました (すべての異なるフレームワークの比較を数時間読んだ後)。これで、必要なアイテムの配列を取得するのは非常に簡単になりました。最善の方法を見つけ出そうと頭を悩ませるよりも、このような JavaScript フレームワークを使用することをお勧めします。もちろん、私は生の言語を実際に学ぶことには大賛成です (フレームワークの使用を長い間控えてきたのはそのためです) が、物事を進めるための最速の方法であるとは限りません。コーダーの言語能力の向上として。
更新: ほぼ 2 年後、私は jQuery を使用するだけで完了しました!