ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptデータ要素収集とarray_javascriptスキルの違いの説明

JavaScriptデータ要素収集とarray_javascriptスキルの違いの説明

WBOY
WBOYオリジナル
2016-05-16 18:27:551107ブラウズ

getElementsByName(name)メソッドは、ページ内のname属性を持つ要素をすべて取得するメソッドですが、このメソッドで取得される内容はIEと標準ブラウザで異なります。 IE では、getElementsByName(name) メソッドによって取得される要素には、独自の name 属性があります。つまり、標準ブラウザでは、フォームにリストされているすべての要素です (これらの要素自体に独自の name 属性があります)。 (name)メソッドはname属性を持つ要素です(すでにこの属性があり、この属性は人為的に追加されています)。したがって、このメソッドを使用して IE ブラウザのページ内の name を持つすべての要素を取得する場合、すでにこの属性を持つ要素 (フォーム クラス要素) のみを取得できますが、人為的に追加された name 属性要素は取得できません。標準ブラウザはこれを行わず、ページ内の name 属性を持つすべての要素を取り出します。

getElementsByName() メソッドと getElementsByTagName() メソッドの共通点は、取得したページ要素を配列ではなく要素のコレクションに形成することです (ただし、console.log( を使用して出力する場合は配列になります)。 ) ファイアバグ形式)。 Object.porototype.toString.apply(arr) メソッドを使用して取得したデータ結果を表示すると、「[object Array]」ではなく「[object HTMLCollection]」が返されます。このように、これら 2 つのメソッドで取得した要素コレクションを使用して配列の一部のメソッドを呼び出して配列のように操作することはできません。代わりに、このコレクションを配列形式に変換する必要があります。配列内の要素が処理されます。

この要素コレクションには次の属性とメソッドがあります:

1. 要素インデックス (index)

2. 要素コレクションの長さ (length)

3. item() メソッド: コレクション内の対応する要素は、異なるインデックス値を渡すことで取得できます。 IEではそのような方法はありません。

4. FF には、name 属性を持つ最初の要素を取得するnamedItem(name) メソッドもあります。このメソッドは FF でのみ使用できます。

要素のコレクションを配列形式に変換する方法はたくさんあります。インターネットで検索すると、さまざまな方法が見つかります。 Situ Zhengmei のブログ投稿「JS は配列状のオブジェクトを配列オブジェクトに変換する」から教訓を学ぶこともできます。

以下は配列変換メソッドです:

コードをコピー コードは次のとおりです:

function makeArray(arr){
if(arr.item){
var len = arr.length;
var array = [](len--){
配列[len] = arr[len];
}
戻り配列;
}
戻り Array.prototype.slice.call(arr); 🎜>
これは小さな例です。変換された結果を確認できます:




[Ctrl A すべて選択 注: 外部 Js を導入する必要がある場合は、 を実行するために更新する必要があります]
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。