【问题标题】:JavaScript: How to replace code within element without innerHTMLJavaScript:如何在没有 innerHTML 的情况下替换元素内的代码
【发布时间】:2020-06-24 18:21:25
【问题描述】:

我想在 JavaScript 中替换元素内的内容,但我不能使用 innerHTMLjQuery

例如:

<div id="MyID">
<b>Hi,</b> how are you?<br/>
I am fine.
</div>

我想替换 &lt;div id="MyID"&gt;&lt;/div&gt; 之间的所有内容。

就像我很遗憾不能使用的通过 innerHTML 一样:

document.getElementById('MyID').innerHTML = document.getElementById('MyID').innerHTML.replace(/you/, '<a href="">you</a>');

这将是:

<div id="MyID">
<b>Hi,</b> how are <a href="">you</a>?<br/>
I am fine.
</div>

怎么做?

我尝试了 appendChildremoveChild 之类的方法,但仍然无法弄清楚。

【问题讨论】:

  • 我不知道为什么不使用 innerHTMLjQuery 会受到限制,但这足以告诉我你应该获得一个 SPA 框架。

标签: javascript dom innerhtml appendchild removechild


【解决方案1】:

对于 appendChild,你应该附加一个 dom 实体

【讨论】:

    【解决方案2】:

    使用 remove() 清除现有内容,然后使用 insertAdjacentHTML() 输入新内容。这是您的代码示例作为示例。

    <div id="MyID">
    <span id="MyID2">
    <b>Hi,</b> how are you?<br/>
    I am fine.
    </span>
    </div>
    
    <button onclick="myFunction()">Insert a paragraph</button>
    
    <script>
    function myFunction() {
    var a = document.getElementById("MyID2");
    a.remove();
    var b = document.getElementById("MyID");
    b.insertAdjacentHTML('afterbegin', '<b>Hi,</b> how are <a href="">you</a>?<br/>I am fine.');
    }
    </script>
    

    【讨论】:

      猜你喜欢
      • 2011-06-30
      • 2019-04-17
      • 2018-03-26
      • 2013-11-20
      • 2016-04-29
      • 2011-05-22
      • 2021-10-22
      • 1970-01-01
      • 2011-03-28
      相关资源
      最近更新 更多