JS-如何获取outerHTML textContent的字符串?

时间:2019-02-22 14:13:51

标签: javascript outerhtml

JavaScript中的

问题- 我使用tagName定义了一个元素,我想获取其完整定义的字符串(例如“

let elem = elementsArr[i].outerHTML.textContent;

它返回我未定义。 我需要一些帮助:)

只想知道为什么我的代码不起作用

2 个答案:

答案 0 :(得分:1)

  

只想知道为什么我的代码不起作用

因为.outerHTML没有使用方法.textContent,所以它返回了undefined

如果要获取元素的内容,可以使用.innerHTML

或者,如果只需要文本,则可以在元素上使用.textContent

查看示例:

d = document.getElementById("d");
console.log(d.outerHTML);
console.log(d.innerHTML);
console.log(d.textContent); 
<div id="d"><p>Content</p><p>Further Elaborated</p></div>

答案 1 :(得分:1)

.outerHTML返回一个字符串,并且String没有方法textContent,因为它都是文本内容;

您可以使用RegEx或function清除HTML-参见下文:

这将返回所有没有标签的文本:)

function strip(html) {
  var doc = new DOMParser().parseFromString(html, 'text/html');
  return doc.body.textContent || "";
}

demo = document.getElementById("demo");

console.log(strip(demo.outerHTML));

console.log(demo.outerHTML.replace(/<(?:.|\n)*?>/gm, '')); // even simpler
<div id="demo">
  <p>Some </p>
  <p>text <span>here</span></p>
</div>

参考:Strip HTML from Text JavaScript

编辑:您也可以只使用element.textContent,它将完全返回您想要的内容