如何添加div并在以后使用
时间:2020-03-05 18:50:19 来源:igfitidea点击:
我认为这是特定于IE 6.0的,但是...
在JavaScript中,我向DOM中添加了一个" div"。我分配了一个id属性。当我以后尝试通过id来拾取div时,我得到的只是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+中可以正常工作
解决方案
回答
我们必须将div添加到dom。
// Create the Div var oDiv = document.createElement('div'); document.body.appendChild(oDiv);
回答
div需要添加到元素中才能成为文档的一部分。
document.appendChild(newDiv); alert( document.getElementById("obj_1000") );
回答
newDiv.setAttribute(" ID"," obj_1000");
应该
newDiv.id =" obj_1000";
回答
除了其他答案建议的内容(我们需要将元素实际插入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为止,都有一个可选的第三个参数,用于控制该属性是否区分大小写。猜猜默认是什么...
回答
Hummm,感谢我们让我进入正确的轨道……这很奇怪,但是事实证明,如果我将大小写更改为小写,一切都将开始正常工作……
完成的结果:
var newDiv = document.createElement("DIV"); newDiv.setAttribute("id", "obj_1000"); document.appendChild(newDiv); alert("Added:" + newDiv.getAttribute("id") + ":" + newDiv.id + ":" + document.getElementById("obj_1000"));
奇...非常奇