Javascript 如何从HTML字符串中提取文本内容而不创建HtmleElement?

Javascript 如何从HTML字符串中提取文本内容而不创建HtmleElement?,javascript,html,Javascript,Html,我最近遇到了一个问题,在将数据显示在屏幕上之前,我需要从数据中删除html标记。 数据是这样来的: <p><span style="color: rgb(68, 68, 68);">Sample data which i want to get.</span></p> 以上代码取自stackoverflow 问题 我担心这样做是否正确,因为每次调用strip函数时都会创建额外的div 问题 有没有更好的方法来实现这一点?Hi要获取特定div的HT

我最近遇到了一个问题,在将数据显示在屏幕上之前,我需要从数据中删除html标记。
数据是这样来的:

<p><span style="color: rgb(68, 68, 68);">Sample data which i want to get.</span></p>
以上代码取自stackoverflow

问题
我担心这样做是否正确,因为每次调用
strip
函数时都会创建额外的div

问题

有没有更好的方法来实现这一点?

Hi要获取特定div的HTML,可以使用“refs”


React REF与jquery中的id一样工作。使用REF,您可以轻松获取该div的内容或任何其他参数。

还有一种从HTML字符串获取文本的方法:。
它支持所有浏览器()

下面是一个如何使用它的示例:

功能条(html){
var doc=new DOMParser().parseFromString(html,'text/html');
返回doc.body.textContent | |“”;

}
您不必每次都创建新元素。创建一个类,创建一次div,并将其存储为实例属性。然后,每次需要剥离一些HTML时,只需用新内容覆盖现有内容并返回文本内容

类剥离器
{
构造函数(){
此._target=document.createElement(“div”)
}
条带(html){
这是。_target.innerHTML=html
返回此。_target.textContent | | this。_target.innerText | |”
}
}
常量剥离器=新剥离器()
log(stripper.strip(/*您的html*/)
也许这对你有帮助

下面的示例使用另一种方法。它不提取文本,而是使用正则表达式(假设数据是html字符串)删除标记

限制:如果文本内容包含<或>字符,则此正则表达式不起作用。如果这是一个问题,您需要修改正则表达式

var-str='我想要得到的样本数据。

'; var str2='我希望得到的样本数据。

; 功能条(html){ 返回html.replace(/]*>/gi',); } 控制台日志(strip(str));
控制台日志(strip(str2))什么是其他方法?考虑详细解释你的情况。你有问题。如前所述,通常您必须在React中避免此类事情。@EddeAlmeida只要没有
.appendChild
完成,这不是很好吗?我同意,但如果OP从XHR响应中获取HTML字符串呢?@EddeAlmeida没有人在操纵DOM。重新阅读代码。嗨,德瓦卡,问题是创建额外的div是否好。为什么要在可以使用state的情况下创建额外的div?如果要创建div,那么方法应该是创建一个组件,并将数据作为道具传递,以便更容易获取和附加数据
function strip(html)
{
   var tmp = document.createElement("DIV");
   tmp.innerHTML = html;
   return tmp.textContent || tmp.innerText || "";
}