我如何将div添加到DOM中,以后再使用它

问题描述 投票:1回答:5

我认为这是特定于IE 6.0的,但是...

在JavaScript中,我向DOM中添加了div。我分配了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+中可以正常工作

javascript css dhtml
5个回答
7
投票

除了其他答案所建议的(您需要将元素实际插入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 documentationsetAttribute(),直到IE8,存在可选的第三参数,该选项控制属性名称是否区分大小写。猜猜默认是什么...


3
投票

将div添加到元素中使其成为文档的一部分。

document.appendChild(newDiv);

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

1
投票

您必须将div添加到dom。

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

0
投票

newDiv.setAttribute(“ ID”,“ obj_1000”);

应该是

newDiv.id =“ obj_1000”;


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"));

奇数...非常奇数

© www.soinside.com 2019 - 2024. All rights reserved.