JS - как получить строку externalHTML textContent?
Вопрос в JavaScript - я определил элемент, используя tagName, и я хочу получить строку его полного определения (например,
let elem = elementsArr[i].outerHTML.textContent;
это возвращает меня неопределенным. Я хотел бы помочь:)
Просто хочу знать, почему мой код не работает
2 ответа
.outerHTML
возвращает строку и String
не имеет метода textContent
как это все текстовое содержание;
Вы можете очистить HTML с помощью RegEx или с помощью 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>
ссылка: вырезать HTML из текстового JavaScript
РЕДАКТИРОВАТЬ: Вы также можете просто использовать element.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>