首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript将子项追加到元素之后

Javascript将子项追加到元素之后
EN

Stack Overflow用户
提问于 2011-08-31 22:09:55
回答 3查看 110.7K关注 0票数 78

我想使用javascript将安莉元素附加到ul元素中的另一个li后面,这就是我到目前为止所用的代码。

代码语言:javascript
复制
var parentGuest = document.getElementById("one");
var childGuest = document.createElement("li");
childGuest.id = "two";

我很熟悉appendChild,

代码语言:javascript
复制
parentGuest.appendChild(childGuest);

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

代码语言:javascript
复制
<ul>
  <li id="one"><!-- where the new li is being put --></li>
  <!-- where I want the new li -->
</ul>
EN

回答 3

Stack Overflow用户

发布于 2011-08-31 22:12:33

在元素的下一个同级元素之前,您需要将新元素追加到现有元素的父级。像这样:

代码语言:javascript
复制
var parentGuest = document.getElementById("one");
var childGuest = document.createElement("li");
childGuest.id = "two";
parentGuest.parentNode.insertBefore(childGuest, parentGuest.nextSibling);

或者,如果您只想添加它,那么:

代码语言:javascript
复制
var parentGuest = document.getElementById("one"); 
var childGuest = document.createElement("li"); 
childGuest.id = "two"; 
parentGuest.parentNode.appendChild(childGuest);
票数 17
EN

Stack Overflow用户

发布于 2011-08-31 23:07:15

这就足够了:

代码语言:javascript
复制
 parentGuest.parentNode.insertBefore(childGuest, parentGuest.nextSibling || null);

因为如果refnode (第二个参数)为null,则执行常规的appendChild。查看此处:http://reference.sitepoint.com/javascript/Node/insertBefore

实际上我怀疑|| null是否是必需的,试一试看看。

票数 1
EN

Stack Overflow用户

发布于 2015-11-19 23:31:53

你也可以这样做

代码语言:javascript
复制
function insertAfter(node1, node2) {
    node1.outerHTML += node2.outerHTML;
}

代码语言:javascript
复制
function insertAfter2(node1, node2) {
    var wrap = document.createElement("div");
    wrap.appendChild(node2.cloneNode(true));
    var node2Html = wrap.innerHTML;
    node1.insertAdjacentHTML('afterend', node2Html);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7258185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档