为什么这不显示消息“Hello world!”?

时间:2013-04-10 14:06:55

标签: javascript document getelementbyid createelement

var div = document.createElement("tempdiv");
div.innerHTML = "<html><body><div id='test'>Hello World!</div></body></html>";
alert(div.getElementById("test").innerHTML);

我收到错误“ Uncaught TypeError:Object #HTMLUnknownElement没有方法'getElementById'

3 个答案:

答案 0 :(得分:1)

getElementById方法仅存在于文档对象上。单个DOM元素不支持它。如果您要将元素添加到DOM,则可以调用document.getElementById("test").innerHTML;来获取文本。

答案 1 :(得分:0)

getElementById不会搜索文档中没有的元素。创建元素并为其分配ID时,必须先使用insertBefore或类似方法将元素插入文档树,然后才能使用getElementById访问它。

参考:https://developer.mozilla.org/en-US/docs/DOM/document.getElementById

示例:

var div = document.createElement("div");
document.body.appendChild(div);
div.innerHTML = "<div id='test'>Hello World!</div>";
console.log(document.getElementById("test"));

答案 2 :(得分:0)

不要忘记将Id设置为创建的div以便能够选择:

var div = document.createElement("div");
div.setAttribute('id', 'idName');
div.innerHTML = "<html><body><div id='test'>Hello World!</div></body></html>";