如何仅编码JavaScript中HTML标签内部的内容



如何仅在js中编码内部标签,但我不知道标签出现的顺序。我确实知道我只会拥有EM,Strong,br和一个标签。看看有趣的O和&&&&&&以下。谢谢。

<div>hello my <em>friend</em>, this is how you <em><strong>search</strong></em> <strong><a href="http://google.com">göogle</a></strong> & remember, don't lose your <strong><em>googliness</em></strong>...</div>

因此,它应该仅编码标签中的特殊字符,而不是标签本身。

所需的输出:

<div>hello my <em>friend</em>, this is how you <em><strong>search</strong></em> <strong><a href="http://google.com">g&#xF6;ogle</a></strong> &#x26; remember, don't lose your <strong><em>googliness</em></strong>...</div>

这应该帮助您起床;跑步。只需在childNodes上迭代并修改其textContent属性:

[...div.childNodes].forEach(
  (el) => {
    // here you can do whatever you want with your nodes
    el.textContent = el.textContent.toUpperCase();
    // so this is the place to implement your encoding logic
  }
)
<div id="div">
  hello my <em>friend</em>, this is how you <em><strong>search</strong></em> <strong><a href="http://google.com">göogle</a></strong> & remember, don't lose your <strong><em>googliness</em></strong>...
</div>

最新更新