在控制台中我收到的错误是div无法附加到body,因为它的值为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);
答案 0 :(得分:4)
这里有两个问题
div
尚未成为该文档的一部分,因此document.getElementsByTagName('div')
不会产生该div document.getElementsByTagName('div')
会返回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);
答案 1 :(得分:1)
实际上,您尝试在div中存在属性之前将其添加到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";
答案 2 :(得分:0)
getElement s ByTagName()方法返回HTMLCollection(即HTMLElements [div,div,...]的数组),即使它只找到1个元素
var divarray = document.getElementsByTagName("div");
if (divarray.length >= 1) var firstdiv = divarray[0];