Javascript Div为null,即使它有子级
在控制台中,我得到一个错误,div不能追加到body,因为它的值为null。为什么会这样?它有内容Javascript Div为null,即使它有子级,javascript,debugging,dom,console,javascript-debugger,Javascript,Debugging,Dom,Console,Javascript Debugger,在控制台中,我得到一个错误,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 = "absol
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'返回一个节点列表而不是单个节点,并且节点列表没有innerHTML属性。
更换这条线
document.getElementsByTagName('div').innerHTML = '<img alt="pickle" src="images/pickle">';
借
演示
var div=document.createElementdiv;
div.innerHTML=;
div.style.visibility=可见;
div.style.position=绝对值;
div.style.zIndex=3;
document.body.appendChilddiv 这里有两个问题
您的div还不是文档的一部分,因此document.getElementsByTagName'div'还不会生成该div
另外,document.getElementsByTagName'div'返回一个节点列表而不是单个节点,并且节点列表没有innerHTML属性。
更换这条线
document.getElementsByTagName('div').innerHTML = '<img alt="pickle" src="images/pickle">';
借
演示
var div=document.createElementdiv;
div.innerHTML=;
div.style.visibility=可见;
div.style.position=绝对值;
div.style.zIndex=3;
document.body.appendChilddiv 实际上,您正在尝试在div出现在DOM中之前向其添加属性。 首先,您必须创建元素并赋予它属性。 试试这个
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";
实际上,您正在尝试在div出现在DOM中之前向其添加属性。 首先,您必须创建元素并赋予它属性。 试试这个
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方法返回HTMLCollection,即HTMLElements[div,div,…]的数组,即使它只找到1个元素
var divarray = document.getElementsByTagName("div");
if (divarray.length >= 1) var firstdiv = divarray[0];
getElementsByTagName方法返回HTMLCollection,即HTMLElements[div,div,…]的数组,即使它只找到1个元素
var divarray = document.getElementsByTagName("div");
if (divarray.length >= 1) var firstdiv = divarray[0];
还是不为我工作。这是我的页面:也许你能看到我在console@enzobarrett我已经附上了演示。确保在加载文档后调用此脚本。@enzobarrett将脚本包含在body标记之后。使其正常工作,我使用window.onload防止其提前加载。谢谢你的帮助,我还是不工作。这是我的页面:也许你能看到我在console@enzobarrett我已经附上了演示。确保在加载文档后调用此脚本。@enzobarrett将脚本包含在body标记之后。使其正常工作,我使用window.onload防止其提前加载。感谢您的帮助。为什么使用[0]?实际上document.getElementsByTagName'div'返回一个数组,这里我们需要第一个元素,所以[0]为什么使用[0]?实际上document.getElementsByTagName'div'返回一个数组,这里我们需要第一个元素,所以[0]