2

これはIE6.0に固有だと思いますが、...

divJavaScriptでは、DOMにを追加します。属性を割り当てidます。後で私が手に入れようとするとdivid私が得るのは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"

Firefox2.0以降では正常に動作するようです

4

5 に答える 5

7

他の回答が示唆していることに加えて(要素をDOMに挿入して、を介して見つける必要があること)、IE6がそれを:getElementById()として認識するために小文字の属性名を使用する必要もあります。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ドキュメントによると、 IE8までは、属性名に関して大文字と小文字を区別するかどうかを制御するsetAttribute()オプションの3番目のパラメーターがあります。デフォルトが何であるかを推測します...

于 2008-09-09T20:17:49.433 に答える
3

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

document.appendChild(newDiv);

alert( document.getElementById("obj_1000") );
于 2008-09-09T20:10:09.327 に答える
1

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

// Create the Div
var oDiv = document.createElement('div');
document.body.appendChild(oDiv);
于 2008-09-09T20:09:50.297 に答える
0

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

する必要があります

newDiv.id = "obj_1000";

于 2008-09-09T20:10:22.260 に答える
0

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

完成した結果:

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

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

奇妙な...非常に奇妙な

于 2008-09-09T20:20:40.020 に答える