所以我有一个包含一些pre标签的div,如下所示:
<div id="editor" >
<pre contentEditable="true">1</pre>
<pre contentEditable="true">2</pre>
<pre contentEditable="true">3</pre>
</div>
现在我想使用Javascript将一个新的pre
节点放在1和2之间。我一直在尝试这样做(因为我知道DOM是一个双向链接树),但我有一种感觉,当我接近它时,指针可能是不可编辑的。
(只是事件处理程序中的一个代码片段,e
是事件)
var tag = e.srcElement;
if(tag.nextSibling){
var next = tag.nextSibling;
var newPre = document.createElement('pre');
newPre.setAttribute("contentEditable", "true");
newPre.innerHTML = "boom";
tag.nextSibling = newPre;
newPre.nextSibling = next;
}
最后两行来自我的c++体验,但在JS中感觉很讨厌。如何设置新的同级节点?
发布于 2017-04-19 14:24:14
您还可以使用insertAdjacentElement或insertAdjacentHTML插入一个新的同级;这两个选项都采用beforebegin
、beforeend
、afterbegin
和afterend
选项。
示例:
var container = document.getElementById('editor'),
firstChild = container.childNodes[1];
var newPre = document.createElement('pre');
newPre.setAttribute("contentEditable", "true");
newPre.innerHTML = "boom";
firstChild.insertAdjacentElement("afterend", newPre);
https://stackoverflow.com/questions/8771921
复制相似问题