insertAfter на Prototype
Wednesday, February 27th, 2008Небольшой prototype для вставки нового узла после указанного
Node.prototype.insertAfter = function(newNode, refNode) {
if(refNode.nextSibling) {
return this.insertBefore(newNode, refNode.nextSibling);
} else {
return this.appendChild(newNode);
}
}
Смысл в том что в самом JavaScript отсутствует insertAfter. Для того что бы добавить узел после нужного использовался первый кусок кода node.insertBefore(newNode, refNode.nextSibling), в то время как здесь встроена еще проверка что если nextSibling отсутствует то используй appendChild иначе попросту вставь в конец.
Как это работает
<script type="text/javascript">
function makeins(){
doc = document.getElementById("doc");
r = document.getElementById("r2");
p = document.createElement("LI");
pt= document.createTextNode("3");
p.appendChild(pt);
doc.insertAfter(p, r);
}
</script>
...
<ul id="doc">
<li id="r1">1</li>
<li id="r2">2</li>
</ul>

