我已经搜索了各种答案,但找不到它们。这里找到的例子要么完全不同,要么比较复杂,要么不合适。如果这是一个N00bz问题,我很抱歉,但这似乎让我很困惑。
var navElement = document.createElement("div");
navElement.id="nav";
navElement.innerHTML="<ul><li>item1</li><li>item2</li><li>item3</li><li>item4</li></ul>";
var logoElement = getElementById("logo");
logoElement.parentNode.insertBefore(navElement,logoElement);
我只想把一个新创建的div与ID“nav”放在另一个已经存在的div之前,ID为“logo”,这是一个不同的已存在的div,ID为“content”。
在定义父级时我也尝试了一次:
var navElement = document.createElement("div");
navElement.id="nav";
navElement.innerHTML="<ul><li>item1</li><li>item2</li><li>item3</li><li>item4</li></ul>";
var logoElement = getElementById("logo");
var contentElement = getElementById("content");
contentElement.insertBefore(navElement,logoElement);
我不想要我可以使用的替代品等等......我只想要一个直截了当的答案,说明为什么这不起作用或至少有一些建议这里出了什么问题。它只是没有在浏览器中显示#nav。
再一次,抱歉这是一个N00bz问题。
注意:在第一个,我检查了Firebug,它声称logoElement由于某种原因未定义...在第二个上,logoElement和contentElement都声称它们未定义。
编辑:谢谢你们!我现在彻底尴尬了。 :)
答案 0 :(得分:1)
logoElement
未定义,因为您没有正确选择它。
getElementById
调用{p> document
var logoElement = document.getElementById()