Как получить только непосредственно содержащийся текст в элементе DOM в Javascript?

Как получить только непосредственно содержащийся текст в элементе DOM в Javascript?

Фильтруйте childNodes чтобы включить только текстовые узлы и использовать textContent каждого из соответствующих узлов:

 const text = Array.prototype.filter .call(element.childNodes, (child) ={amp}gt; child.nodeType === Node.TEXT_NODE) .map((child) ={amp}gt; child.textContent) .join(''); 

text включает полную разметку текста, включая переводы строки. Если это нежелательно, используйте text.trim() .

filter.call используется потому, что childNodes — это NodeList , который похож на массив, но не поддерживает метод .filter .


Получить текст только для первого узла

 const text = Array.prototype.filter .call(element.childNodes, (child) ={amp}gt; child.nodeType === Node.TEXT_NODE)[0]; 

В качестве альтернативы, если вы можете полагаться на тот факт, что значение всегда является первым дочерним элементом, вышеприведенное можно упростить до

 const text = element.childNodes[0]; 
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector