【发布时间】:2013-05-25 02:23:46
【问题描述】:
我有以下代码:
<div id="container">
<div id="cat1"></div>
<div id="cat2"></div>
<div id="cat3"></div>
</div>
我可以做一个 insertBefore 但没有 insertAfter... 如果我想将另一只猫附加到容器中怎么办?我真的必须使用 nextSibling 吗?很奇怪,有一个 insertBefore 和一个 insertAfter 必须使用 hack。有没有替代品
function insertAfter(referenceNode, newNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
insertAfter(document.getElementById("tres"), myscript);
【问题讨论】:
-
不,你拥有的真的很好。
-
你可以做
parent.insertBefore(new, old); parent.insertBefore(old, new);这将通过交换来模拟insertAfter。 -
@Bergi 我也发现了这一点,但从技术上讲,OP 正在询问是否有比该问题的答案更好的东西。
-
@ajp15243:显然不是,否则它将成为那里的最佳答案 :-) 基本上这是同一个问题,要求“最佳方式”。
-
我有一个替代方法,它不是很好,并且添加了垃圾,添加一个id为containerEnd的div并执行insertBefore(elem,containerEnd)。这是另一种选择,但不是更好的选择。
标签: javascript