我有一个标记字符串数组,例如:
const array = [
'<p class="item">text</p>',
'<h1>hello</h1>',
];
我想替换每个标记字符串的第一个标记的文本内容。我想使用replace
方法,但因为它不总是<p>
标记,有时标记的标记具有类属性,所以我不能只针对<p>
和</p>
之间的文本。我尝试使用jQuery的html
方法,但它不起作用。
怎样才能完成刚才描述的任务呢?
我有一个标记字符串数组,例如:
const array = [
'<p class="item">text</p>',
'<h1>hello</h1>',
];
我想替换每个标记字符串的第一个标记的文本内容。我想使用replace
方法,但因为它不总是<p>
标记,有时标记的标记具有类属性,所以我不能只针对<p>
和</p>
之间的文本。我尝试使用jQuery的html
方法,但它不起作用。
怎样才能完成刚才描述的任务呢?
2条答案
按热度按时间nlejzf6q1#
解析任何类型的标记都不应该留给基于正则表达式的方法,因为后者在设计上无法与专门的解析器竞争。
因此,OP可能会查看
DOMParser
和DOMParser.parseFromString
(用于解析)以及HTMLElement.innerText
(文本替换)和Element.outerHTML
(再次序列化)。一个可能的基于jQuery的实现可能如下所示。
一个一个二个一个一个一个三个一个一个一个一个一个四个一个
olhwl3o22#
试试这个: