-1

我已经为此搜索了各种答案,但找不到它们。此处找到的示例要么完全不同,要么太复杂而无法比较,或者只是不合适。如果这是一个 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);

我只想将一个新创建的 ID 为“nav”的 div 放在另一个 ID 为“logo”的现有 div 之前,该 div 位于另一个 ID 为“content”的现有 div 中。

我在定义父级时也尝试过一次:

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 都声称它们未定义。

编辑:谢谢各位!我现在彻底尴尬了。:)

4

1 回答 1

1

logoElement未定义,因为您没有正确选择它。

getElementById必须从以下位置调用document

var logoElement = document.getElementById()
于 2013-06-13T20:29:06.250 回答