我认为这是特定于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+中可以正常工作
除了其他答案所建议的(您需要将元素实际插入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 documentation的setAttribute()
,直到IE8,存在可选的第三参数,该选项控制属性名称是否区分大小写。猜猜默认是什么...
将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"));
奇数...非常奇数