JS - как получить строку externalHTML textContent? - PullRequest
0 голосов
/ 22 февраля 2019

вопрос в JavaScript - я определил элемент, используя tagName, и я хочу получить строку его полного определения (например, "

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

возвращает мне неопределенное значение. Мне нужна помощь:)

Просто хочу узнать, почему мой код не работает

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

.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 и он вернет именно то, что вы хотите

0 голосов
/ 22 февраля 2019

Просто хочу узнать, почему мой код не работает

Поскольку .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>
...