我认为这是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 +中正常工作
答案 0 :(得分: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]
根据setAttribute()
的{{3}},直到IE8,有一个可选的第三个参数,它控制是否区分大小写属性名称。猜猜默认是什么......
答案 1 :(得分:3)
需要将div添加到元素中,以使其成为文档的一部分。
document.appendChild(newDiv);
alert( document.getElementById("obj_1000") );
答案 2 :(得分:1)
你必须将div添加到dom。
// Create the Div
var oDiv = document.createElement('div');
document.body.appendChild(oDiv);
答案 3 :(得分:0)
newDiv.setAttribute(“ID”,“obj_1000”);
应该是
newDiv.id =“obj_1000”;
答案 4 :(得分: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"));
ODD ......很奇怪