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

如何使用纯 Javascript 在 HTML 元素后添加文本?有 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 等效项是什么?

【问题讨论】:

  • 检查我的更新答案

标签: javascript html dom


【解决方案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() 会很乐意追加新节点。
    猜你喜欢
    • 2022-01-17
    • 2021-07-10
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多