为什么在使用“insertBefore()”时需要引用元素的父级

Why do I need the parent of the reference element when using `insertBefore()`?

本文关键字:引用 元素 insertBefore 为什么      更新时间:2023-09-26

如果我想在refEl之前插入newEl,我必须使用

refEl.parentNode.insertBefore(newEl, refEl);

为什么w3c决定这么做?

对我来说,下面的两个选项更有意义

  • insertBefore只需要一个参数:

    refEl.insertBefore(newEl);  /* or */  newEl.insertBefore(refEl);
    
  • 只有document具有insertBefore

    document.insertBefore(newEl, refEl);
    

为什么w3c希望我们指定多余的父元素?

也许还有什么我看不到的优势?

如果它是一个链表,则需要父级更改"下一个"链接。只有一个节点,它没有足够的信息来完成操作。