Div 为空,即使它有一个 child
Div is null even though it has a child
在控制台中,我收到错误消息,指出 div 无法附加到正文,因为它的值为 null。为什么是这样?有内容。
var div = document.createElement("div");
document.getElementsByTagName('div').innerHTML = '<img alt="pickle"
src="images/pickle">';
div.style.visibility = "visible";
div.style.position = "absolute";
div.style.zIndex = "3";
document.body.appendChild(div);
这里有两个问题
- 您的
div
还不是文档的一部分,因此 document.getElementsByTagName('div')
还不会生成那个 div
- 还有
document.getElementsByTagName('div')
returns 一个 NodeList
而不是单个 Node
,并且 NodeList 没有 innerHTML
属性.
替换此行
document.getElementsByTagName('div').innerHTML = '<img alt="pickle" src="images/pickle">';
来自
div.innerHTML = '<img alt="pickle" src="images/pickle">';
演示
var div = document.createElement("div");
div.innerHTML = '<img alt="pickle" src="images/pickle">';
div.style.visibility = "visible";
div.style.position = "absolute";
div.style.zIndex = "3";
document.body.appendChild(div);
实际上,您正试图在 div 出现在 DOM 之前将属性添加到 div。
首先你必须创建元素并赋予它属性。
试试这个
var div = document.createElement( "div" );
document.body.appendChild(div);
document.getElementsByTagName( 'div' )[ 0 ].innerHTML = ' <img alt="pickle" src="images/pickle"> ';
var divEle = document.getElementsByTagName( 'div' )[ 0 ];
divEle.style.visibility = "visible";
divEle.style.position = "absolute";
divEle.style.zIndex = "3";
getElementsByTagName() 方法 returns HTMLCollection(即 HTMLElements 数组 [div, div, ... ] ) 即使只找到 1 个元素
var divarray = document.getElementsByTagName("div");
if (divarray.length >= 1) var firstdiv = divarray[0];
在控制台中,我收到错误消息,指出 div 无法附加到正文,因为它的值为 null。为什么是这样?有内容。
var div = document.createElement("div");
document.getElementsByTagName('div').innerHTML = '<img alt="pickle"
src="images/pickle">';
div.style.visibility = "visible";
div.style.position = "absolute";
div.style.zIndex = "3";
document.body.appendChild(div);
这里有两个问题
- 您的
div
还不是文档的一部分,因此document.getElementsByTagName('div')
还不会生成那个 div - 还有
document.getElementsByTagName('div')
returns 一个NodeList
而不是单个Node
,并且 NodeList 没有innerHTML
属性.
替换此行
document.getElementsByTagName('div').innerHTML = '<img alt="pickle" src="images/pickle">';
来自
div.innerHTML = '<img alt="pickle" src="images/pickle">';
演示
var div = document.createElement("div");
div.innerHTML = '<img alt="pickle" src="images/pickle">';
div.style.visibility = "visible";
div.style.position = "absolute";
div.style.zIndex = "3";
document.body.appendChild(div);
实际上,您正试图在 div 出现在 DOM 之前将属性添加到 div。 首先你必须创建元素并赋予它属性。 试试这个
var div = document.createElement( "div" );
document.body.appendChild(div);
document.getElementsByTagName( 'div' )[ 0 ].innerHTML = ' <img alt="pickle" src="images/pickle"> ';
var divEle = document.getElementsByTagName( 'div' )[ 0 ];
divEle.style.visibility = "visible";
divEle.style.position = "absolute";
divEle.style.zIndex = "3";
getElementsByTagName() 方法 returns HTMLCollection(即 HTMLElements 数组 [div, div, ... ] ) 即使只找到 1 个元素
var divarray = document.getElementsByTagName("div");
if (divarray.length >= 1) var firstdiv = divarray[0];