相关疑难解决方法(0)

使用JavaScript insertBefore()在TextNode之前插入?

我有以下HTML:

<div id="move-me">
    <a href="#">I'm a link</a>
</div>

<div id="new-parent">
    Some plain text.
</div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写JavaScript,将整个#move-me div移到文本上方的#new-parent div中,如下所示:

<div id="new-parent">
    <div id="move-me">
        <a href="#">I'm a link</a>
    </div>
    Some plain text.
</div>
Run Code Online (Sandbox Code Playgroud)

这是我的JavaScript:

function moveDiv() {
    var moveable = document.getElementById('move-me');
    var newParent = document.getElementById('new-parent');
    newParent.parentNode.insertBefore(moveable, newParent.firstChild);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Firebug进行调试,我可以看到它newParent.firstChild是一个TextNode,但我总是收到以下错误:

Node was not found" code: "8
newParent.parentNode.insertBefore(moveable, newParent.firstChild); 
Run Code Online (Sandbox Code Playgroud)

它似乎insertBefore需要一个元素节点,不能在文本节点上工作......是吗?如果是这样,还有另一个好方法吗?

注意:我无法修改或清理HTML以包含段落标记或删除空格.

javascript dom

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

dom ×1

javascript ×1