将元素作为兄弟元素附加在元素之后? [复制]

Posted

技术标签:

【中文标题】将元素作为兄弟元素附加在元素之后? [复制]【英文标题】:Append element as sibling after element? [duplicate] 【发布时间】:2014-02-20 17:45:27 【问题描述】:

如何使用纯 javascripthtml 元素后添加文本?有 appendChild 但这会将它添加到元素中。相反,我想在这样的元素之后添加它作为兄弟:

<img id="myimg" src="..." />

<script>
  var myimg = document.getElementById('myimg');
  myimg.appendAFTER('This is my caption.'); //pseudo-code and doesn't really work
</script>

我想这样结束:

<img id="myimg" src="..." />
This is my caption.

来自 jQuery 的 after() 的 Javascript 等效项是什么?

【问题讨论】:

检查我的更新答案 【参考方案1】:

查看Node.@987654321@Node.@987654322@ (fiddle):

var myimg = document.getElementById('myimg');
var text = document.createTextNode("This is my caption.");
myimg.parentNode.insertBefore(text, myimg.nextSibling)

Element.@987654324@ (fiddle):

var myimg = document.getElementById('myimg');
myimg.insertAdjacentHTML("afterend", "This is my caption.");

【讨论】:

【参考方案2】:

请使用以下代码:

<img id="myimg" src="..." />

<script>
  var myimg = document.getElementById('myimg');
  var txt=document.createElement("span");
  txt.innerHTML="Whatever text you want to write . . .";
  if(myimg.nextSibling)
    myimg.parentNode.insertBefore(txt,myimg.nextSibling);
  else
    myimg.parentNode.appendChild(txt);
  
</script>

【讨论】:

您不需要检查.nextSibling。如果引用节点是nullinsertBefore() 会很乐意追加新节点。

以上是关于将元素作为兄弟元素附加在元素之后? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在某个类/元素之后将内容附加到元素[关闭]

如何将一个列表的所有元素附加到另一个列表? [复制]

Javascript在元素之后附加子元素

在其他元素之后附加一个元素

将元素附加到 QueryList Angular

用于复制具有样式的页面元素的附加组件