我有以下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以包含段落标记或删除空格.
Tim*_*own 13
不,insertBefore
可以使用文本节点作为之前插入的节点.问题是您之前尝试插入的节点不是您要插入的节点的子节点.您需要删除该.parentNode
位:
newParent.insertBefore(moveable, newParent.firstChild);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14467 次 |
最近记录: |