我已经使用innerHTML标签在运行时创建了一个对象,现在我想使用getElementById访问这个元素,当我访问该元素时它返回NULL值。请给我建议任何方向,以便我能够实现这一目标,
这是我正在使用的以下代码提示
In HTML
<div id="web">
<object id="test"></object>
</div>
In JS
document.getElementById("web").innerHTML="<object id='test2'></object>";
.
.
var obj = document.getElementById("test2");
这里 obj 返回 null 值。
您是否为新创建的元素分配了 id?您是否将该元素插入到文档树中(使用appendChild
or insertBefore
)?只要元素没有插入到 DOM 中,就无法使用以下方法检索它document.getElementById
.
元素创建示例:
var myDiv = document.createElement('div');
myDiv.id = 'myDiv';
document.body.appendChild(myDiv);
document.getElementById('myDiv').innerHTML = 'this should have worked...';
[edit] 鉴于后面提供的代码,出现了第三个问题:您的脚本是否位于 html 页面的底部(就在关闭之前)</body>
标签)?如果它位于文档的标题中,则您的脚本可能正在运行before文档树已完全呈现。如果您的脚本必须位于文档的标题中,您可以使用加载处理程序来运行它after文档的渲染:
window.onload = function(){
document.getElementById("web").innerHTML='<object id="test2"></object>';
// [...]
var obj = document.getElementById('test2');
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)