2012-01-01 8 views
4

DOMオブジェクトのマップ/ハッシュを維持したいですか?彼らは主要な目的として役立つことができますか?そうでない場合、代替案は何ですか?より良い方法があれば、親切にもそれらを援助してください。DOMオブジェクトをJavascript配列のインデックス/キーにすることはできますか?

+1

申し訳ありませんが、何ですか?あなたはあなたが知りたいことを説明することができますか、またはあなたが望むものが可能な場合、出力をどのように使用するのですか? –

+1

配列キー '[]'の代わりに、オブジェクトプロパティ '{}'を意味すると思います。 JavaScript配列は数値でインデックス付けされますが、オブジェクトリテラルは文字列プロパティを持ちますが、 'object.propertyname'の代わりに' object ["propertyname"] 'という構文を使用することがあります –

+0

あなたがしようとしていることがわかるまで、 –

答えて

6

キーは何でも入力できますが、実際に使用する前には常に文字列に変換され、その文字列がキーとして使用されます。 domObject.toString()が生成するものを見ると、それは良い候補ではありません。すべてのDOMオブジェクトにIDがある場合は、そのIDを使用できます。 DOMオブジェクトに基づいたキーが必要な場合は、_counterがまだ存在しない場合は、DOMオブジェクトに新しい一意の値を入れて、バックグラウンドで自動カウンタを使用して_counter属性を使用します。

+4

カスタム属性を作成しないでください。このケースの特別な['data-'接頭辞](http://www.w3.org/TR/html5/elements.html#embedding-custom-non-visible-data-with-the-data-attributes)があります。 – katspaugh

0

いいえ、数値でインデックス化された配列のインデックスとして持つ数値を含むDOM要素に属性を設定できます。

1

windowは、すべてのDOMオブジェクトを既にプロパティとして管理しています。各DOMオブジェクトに独自のキーを入れるのではなく、DOMツリーのレイアウトに基づいてインデックスを使用するウィンドウやドキュメントのオブジェクトやメソッドを使用してみてください。

+0

ルックアップの間にDOMレイアウトを維持する必要はありません。 – katspaugh

+0

@katspaugh有効なポイント.. –

0

いいえ、オブジェクトキーは文字列です。

オブジェクトをidなどで「シリアライズ」してから、後でルックアップを実行する必要があります。あなたの実際の目標がここにあるかどうかによって、おそらく価値はありません。

-2

正確ではありません。しかし、私はあなたが以下のようなものを望むと思う。 jquery

.serializeArray()メソッドは、JSON文字列としてエンコードできるオブジェクトのJavaScript配列を作成します。これは、フォーム要素のセットを表すjQueryオブジェクトで動作します。フォーム要素は、いくつかの種類のものとすることができる

リンク以下を参照: http://api.jquery.com/serializeArray/

+0

-1質問とは関係ありません – naugtur

0

簡単な代わり要素のデータ属性を設定することです。

関連する問題