divを追加して後でそれを取得するにはどうすればよいですか

StackOverflow https://stackoverflow.com/questions/52785

  •  09-06-2019
  •  | 
  •  

質問

これは IE 6.0 特有の現象だと思いますが...

JavaScript では、 div DOMに。私は id 属性。後で取りに行こうとすると、 div によって id 私が得るすべては null.

助言がありますか?

例:

var newDiv = document.createElement("DIV");
newDiv.setAttribute("ID", "obj_1000");
document.appendChild(newDiv);

alert("Added:" + newDiv.getAttribute("ID") + ":" + newDiv.id + ":" + document.getElementById("obj_1000") );

アラートプリント "::null"

Firefox 2.0以降では正常に動作するようです

役に立ちましたか?

解決

他の回答が示唆していることに加えて(要素を見つけるには、実際にDOMに要素を挿入する必要があります) getElementById())、IE6 が属性名を認識するには、小文字の属性名を使用する必要もあります。 id:

var newDiv = document.createElement("DIV"); 
newDiv.setAttribute("id", "obj_1000");
document.body.appendChild(newDiv);

alert("Added:"
   + newDiv.getAttribute("id") 
   + ":" + newDiv.id + ":" 
   + document.getElementById("obj_1000") );

...期待どおりに応答します:

Added:obj_1000:obj_1000:[object]

による MSDN ドキュメント のために setAttribute(), 、IE8 まではオプションがあります。 3番目のパラメータ これは、属性名に関して大文字と小文字を区別するかどうかを制御します。デフォルトは何だと思います...

他のヒント

div をドキュメントの一部にするには、要素に div を追加する必要があります。

document.appendChild(newDiv);

alert( document.getElementById("obj_1000") );

div を dom に追加する必要があります。

// Create the Div
var oDiv = document.createElement('div');
document.body.appendChild(oDiv);

newDiv.setAttribute( "ID", "obj_1000" );

あるべきです

newDiv.id = "obj_1000";

うーん、正しい軌道に乗せてくれてありがとう...これは奇妙でしたが、大文字を小文字に変更すると、すべてが正常に動作し始めることがわかりました...

最終結果:

var newDiv = document.createElement("DIV");
newDiv.setAttribute("id", "obj_1000");
document.appendChild(newDiv);

alert("Added:" +
      newDiv.getAttribute("id") + ":" +
      newDiv.id + ":" +
      document.getElementById("obj_1000"));

奇妙...非常に奇妙

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top