作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我认为这是 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+ 中工作正常
最佳答案
除了其他答案的建议(您需要实际将元素插入 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 之前,有一个可选的第三个参数,用于控制是否对属性名称区分大小写。猜猜默认值是什么...
关于javascript - 如何将一个 div 添加到 DOM 并稍后再拾取它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52785/
我是一名优秀的程序员,十分优秀!