function rearrange(x, y) {
x.parentNode.replaceChild(x, y);
x.parentNode.insertBefore(y,x);
}
如果我做
var a = document.getElementsByClassName('btn-button-google')[0];
var b = document.getElementsByClassName('btn-button-doodle')[0];
rearrange(b,a);
我收到以下错误
NotFoundError: Failed to execute 'replaceChild' on 'Node': The node to be replaced is not a child of this node.
我理解,因为 a 在一个 html div 中,而 b 在另一个 div 中,但我很好奇如何解决这个问题。这行得通
rearrange(b.parentNode,a.parentNode);
因为它们在同一个节点中。
示例 HTML
<div class="container">
<div class="group">
<a href="" class="btn-button-bold"><a>
<a href="" class="btn-button-italic"><a>
<a href="" class="btn-button-strike"><a>
</div>
<div class="group">
<a href="" class="btn-button-font"><a>
<a href="" class="btn-button-ffamily"><a>
<a href="" class="btn-button-google"><a>
</div>
<div class="group">
<a href="" class="btn-button-smilies"><a>
<a href="" class="btn-button-doodle"><a>
<a href="" class="btn-button-source"><a>
</div>
</div>