用字符串代替标签名称

问题描述 投票:0回答:1

假设我有一些HTML代码,比如说。

"Hello, my <strong>name</strong> is Nanoo."

我怎样才能替换掉 <strong> 用一个字符串标记?

比如说

"Hello, my **name** is Nanoo."

(替换了 <strong> 标记 **)

我也许可以用 replace() 函数,但是我想有效地完成这个任务。谢谢你的帮助。

javascript html dom
1个回答
0
投票

使用 parentNode.replaceChild(newChild, oldChild)。.

// on DOMContentLoaded 
document.querySelectorAll('strong').forEach(function(ele) { // for each strong tag
    var newTag = document.createTextNode('**' + ele.textContent + '**');
    ele.parentNode.replaceChild(newTag, ele);
})
<p>Hello, my <strong>name</strong> is Nanoo.</p>

0
投票

使用正则表达式。((.+?) 是用来捕捉强标签的内容,所以我们可以使用 $1 (在替换中替换被捕获的组)。

然而, 不要使用regexps来真正解析HTML。

>>> s = "Hello, my <strong>name</strong> is Nanoo.";
>>> s.replace(/<strong>(.+?)<\/strong>/g, '**$1**');
"Hello, my **name** is Nanoo."
© www.soinside.com 2019 - 2024. All rights reserved.