Wez*_*Wez 65 javascript getelementbyid appendchild createelement
我想在一个ul元素中使用javascript追加一个li元素,这是我到目前为止的代码..
var parentGuest = document.getElementById("one");
var childGuest = document.createElement("li");
childGuest.id = "two";
Run Code Online (Sandbox Code Playgroud)
我熟悉appendChild,
parentGuest.appendChild(childGuest);
Run Code Online (Sandbox Code Playgroud)
但是,这会将新元素添加到另一个元素中,而不是在其后.如何在现有元素之后附加新元素?谢谢.
<ul>
<li id="one"><!-- where the new li is being put --></li>
<!-- where I want the new li -->
</ul>
Run Code Online (Sandbox Code Playgroud)
Yos*_*shi 104
您可以使用:
if (parentGuest.nextSibling) {
parentGuest.parentNode.insertBefore(childGuest, parentGuest.nextSibling);
}
else {
parentGuest.parentNode.appendChild(childGuest);
}
Run Code Online (Sandbox Code Playgroud)
但正如Pavel指出的那样,referenceElement可以为null/undefined,如果是这样,insertBefore的行为就像appendChild一样.所以以下内容相当于以上内容:
parentGuest.parentNode.insertBefore(childGuest, parentGuest.nextSibling);
Run Code Online (Sandbox Code Playgroud)
vit*_*kaz 16
您需要在元素的下一个兄弟之前将新元素附加到现有元素的父元素.喜欢:
var parentGuest = document.getElementById("one");
var childGuest = document.createElement("li");
childGuest.id = "two";
parentGuest.parentNode.insertBefore(childGuest, parentGuest.nextSibling);
Run Code Online (Sandbox Code Playgroud)
或者如果你想要追加它,那么:
var parentGuest = document.getElementById("one");
var childGuest = document.createElement("li");
childGuest.id = "two";
parentGuest.parentNode.appendChild(childGuest);
Run Code Online (Sandbox Code Playgroud)
Mel*_*igy 16
如果你正在寻找一个简单的JS解决方案,那么你只需要使用insertBefore()
对nextSibling
.
就像是:
parentGuest.parentNode.insertBefore(childGuest, parentGuest.nextSibling);
Run Code Online (Sandbox Code Playgroud)
需要注意的是默认值nextSibling
就是null
,所以,你不需要做什么特别的那个.
更新:你甚至不需要像当前接受的答案一样if
检查存在parentGuest.nextSibling
,因为如果没有下一个兄弟,它将返回null
,并传递null
给第二个参数insertBefore()
意味着:追加到最后.
参考:
.
如果你正在使用jQuery(否则,我已经说过上面的简单JS答案),你可以利用方便的after()
方法:
$("#one").after("<li id='two'>");
Run Code Online (Sandbox Code Playgroud)
参考:
引用MDN
该
ChildNode.after()
方法将一组 Node 或对象插入到 this父级DOMString
的子级列表中,就在 this 之后。DOMString 对象作为等效的文本节点插入。ChildNode
ChildNode
支持的浏览器为 Chrome(54+)、Firefox(49+) 和 Opera(39+)。它不支持 IE 和 Edge。
var elm=document.getElementById('div1');
var elm1 = document.createElement('p');
var elm2 = elm1.cloneNode();
elm.append(elm1,elm2);
//added 2 paragraphs
elm1.after("This is sample text");
//added a text content
elm1.after(document.createElement("span"));
//added an element
console.log(elm.innerHTML);
Run Code Online (Sandbox Code Playgroud)
<div id="div1"></div>
Run Code Online (Sandbox Code Playgroud)
在代码片段中,我也使用了另一个术语“附加”
归档时间: |
|
查看次数: |
96222 次 |
最近记录: |