获取没有HTML标签的文本

时间:2020-09-18 11:52:41

标签: javascript html reactjs tags

我要从Wordpress api返回帖子,目前正在获取一个数组,其中包含帖子。我可以返回一个字符串,但其中包含HTML标记。我已经使用了textContent和innerText,但是似乎没有用。

我目前正在返回<p> info: 111,<br /> key: fdfd ,<br /> city: ,<br /> suburb: ,<br /> job: </p>

top返回没有<p><br>的内容的最佳方式是什么?

3 个答案:

答案 0 :(得分:0)

您需要将字符串转换为HTML页面,然后定位“ p”元素并提取其文本。像这样:

var p = "<p> info: 111,<br /> key: fdfd ,<br /> city: ,<br /> suburb: ,<br /> job:  </p>"
var parser = new DOMParser();
var htmlDoc = parser.parseFromString(p, 'text/html');
console.log(htmlDoc.body.getElementsByTagName("P")[0].innerText);

答案 1 :(得分:0)

这更多是另一种常见警告方式。

ATD提到的DOMParser()的常见替代方法是创建一个元素,将其添加为innerHTML并使用textContent进行获取。

let tParser = document.createElement('div');
tParser.innerHTML = "<p> info: 111,<br /> key: fdfd ,<br /> city: ,<br /> suburb: ,<br /> job:  </p>";
console.log(tParser.textContent)

请注意使用innerHTML带来的风险。一切都将解释为HTML并从您的网站执行。也就是说,不要将其添加到DOM或更好,请尝试完全避免使用它。

此外,MDN还提到以下内容:

如果您的项目是将接受任何形式的安全检查的项目, 使用innerHTML最有可能导致您的代码被拒绝。 例如,如果您在浏览器扩展中使用innerHTML并提交 addons.mozilla.org的扩展名,它不会通过自动 审核过程。

Source

答案 2 :(得分:0)

您的问题已经回答:


function extractContent(s) {
  var span = document.createElement('span');
  span.innerHTML = s;
  return span.textContent || span.innerText;
};
    
alert(extractContent("<p>Hello</p><a href='http://w3c.org'>W3C</a>"));

原始问题: Extract the text out of HTML string using JavaScript