2011-01-21 25 views
1
で異なって

いくつかの奇妙あります。 Chromeはキーで要素をソートし、次の方法で出力します(1,2,3)。動的に作成された選択要素はFFとChrome

これはどうしてですか?そして、どのようにしてChromeのソートを防止するのですか?

答えて

2

for … inステートメントは、予測不可能な順序でオブジェクトを反復処理します。 任意の順序でオブジェクトの 性質上for...inループ反復

(一方は少なくともに繰り返し、 の見せかけの秩序 に依存することができない理由の詳細についてdelete operator 参照:MDC saysとしてブラウザ間の設定)。

var items = [{"3":"Three"}, {"1":"One"}, {"2":"Two"}]; 

for (var i = 0; i < items.length; i++} 
    /* etc */ ; 

ただ、サイドノートを::for … inを使用してオブジェクトを反復処理するとき、あなたは本当にあなたがより良いオブジェクトの配列を使用してのように、指定された順序を維持するために通常のforループを使用すると思い

hasOwnPropertyを使用して継承されたプロパティかどうかを確認する必要があります。そうでなければ、selectボックスに継承プロパティを含めることができます。

+0

ありがとうございます!おそらく問題は、ブラウザのクロスブラウザの動作ではなく、var ... inステートメント – Alexander

関連する問題