divを追加して後でそれを取得するにはどうすればよいですか
-
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"));
奇妙...非常に奇妙
所属していません StackOverflow