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>

Другие вопросы по тегам