0

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

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

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

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

4

2 回答 2

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>

于 2019-02-22T14:24:39.337 回答
1

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

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

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

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>

参考:从文本 JavaScript 中剥离 HTML

编辑:你也可以只使用element.textContent它,它会返回你想要的

于 2019-02-22T14:30:12.687 回答