JavaScript 中的问题 - 我使用 tagName 定义了一个元素,我想获取它的完整定义的字符串(如“
let elem = elementsArr[i].outerHTML.textContent;
它返回我未定义。我需要一些帮助:)
只想知道为什么我的代码不起作用
JavaScript 中的问题 - 我使用 tagName 定义了一个元素,我想获取它的完整定义的字符串(如“
let elem = elementsArr[i].outerHTML.textContent;
它返回我未定义。我需要一些帮助:)
只想知道为什么我的代码不起作用
只想知道为什么我的代码不起作用
因为.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>
.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>
编辑:你也可以只使用element.textContent
它,它会返回你想要的