insertbefore相反作用?

anyboya 2007-10-07 03:35:36
我想在指定节点后添加一个节点,但是好像没有insertafter 或者 insertbehind,不知道用什么好的方法解决?不会是让我算出后一个的节点吧。。。
...全文
213 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
meizz 2007-10-12
  • 打赏
  • 举报
回复
if(typeof(HTMLElement)!="undefined" && !window.opera)
{
HTMLElement.prototype.insertAdjacentHTML=function(where, html)
{
var e=this.ownerDocument.createRange();
e.setStartBefore(this);
e=e.createContextualFragment(html);
switch (where)
{
case 'beforeBegin': this.parentNode.insertBefore(e, this);break;
case 'afterBegin': this.insertBefore(e, this.firstChild); break;
case 'beforeEnd': this.appendChild(e); break;
case 'afterEnd':
if(!this.nextSibling) this.parentNode.appendChild(e);
else this.parentNode.insertBefore(e, this.nextSibling); break;
}
};
};

使用这个 insertAdjacentHTML 你想插在哪就插在哪!
JGood 2007-10-07
  • 打赏
  • 举报
回复
自己写一个呗:


function insertAfter(newNode, referenceNode)
{
var parentNode = referenceNode.parentNode;

if (referenceNode.nextSibling)
{
parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
else
parentNode.appendChild(newNode);
}

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧