问题- 我使用tagName定义了一个元素,我想获取其完整定义的字符串(例如“
let elem = elementsArr[i].outerHTML.textContent;
它返回我未定义。 我需要一些帮助:)
只想知道为什么我的代码不起作用
答案 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
,它将完全返回您想要的内容