解決済み

[JS] setAttributeで保存される順番

  • すぐに回答を!
  • 質問No.7335951
  • 閲覧数387
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 41% (72/172)

IEで悩まされています。
配列arrで指定されている属性情報をノードにセットする際に、以下のようにしたところ、
IE8では設定されたelement.attributesはarrとは異なる順番となってしまいます。
(FF10ではsetAttributeしたとおりの順番でelement.attributesに格納されます)

for ( var i = 0; i < arr.length; i++){
element.setAttribute( arr[i].name, arr[i].value);
}

配列arrで指定されている順番そのままでelementに属性を設定したいのですが、
どうすれば可能でしょうか。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 60% (79/130)

「仕様上」不可能です。なぜなら、XML および HTML の基本仕様として、属性は順序を持たないからです。IE の振る舞いは正当です。

順序が必要なら要素として書き直すか、やり方を変えて下さい。


ついでながら、JavaScript における for...in でのプロパティ列挙も順序は実装依存です。プロパティは順序を持ちません。
感謝経済、優待交換9月20日スタート
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ