Javascript在元素后附加子元素[复制]

参见英文答案 > How to insert an element after another element in JavaScript without using a library?                                    17个
我想在一个ul元素中使用javascript追加一个li元素,这是我到目前为止的代码..

var parentGuest = document.getElementById("one");
var childGuest = document.createElement("li");
childGuest.id = "two";

我熟悉appendChild,

parentGuest.appendChild(childGuest);

但是,这会将新元素添加到另一个元素中,而不是在其后.如何在现有元素之后附加新元素?谢谢.

<ul>
  <li id="one"><!-- where the new li is being put --></li>
  <!-- where I want the new li -->
</ul>

解决方法:

您可以使用:

if (parentGuest.nextSibling) {
  parentGuest.parentNode.insertBefore(childGuest, parentGuest.nextSibling);
}
else {
  parentGuest.parentNode.appendChild(childGuest);
}

但是正如Pavel指出的那样,referenceElement可以为null / undefined,如果是这样,insertBefore就像appendChild一样.所以下面的内容相当于上面的内容:

parentGuest.parentNode.insertBefore(childGuest, parentGuest.nextSibling);
上一篇:javascript – appendChild在IE中不使用window.open


下一篇:javascript – jQuery append()vs appendChild()