Возможно, вы захотите попробовать textContent
вместо innerHTML
.
Предоставлено innerHTML
будет возвращать содержимое DOM как String
, а не только «текст» в div
. Это нормально, если вы знаете, что ваш div
содержит только текст, но не подходит, если каждый вариант использования. Для тех случаев, вам, возможно, придется использовать textContent
вместо innerHTML
Например, учитывая следующую разметку:
<div id="test">
Some <span class="foo">sample</span> text.
</div>
Вы получите следующий результат:
var node = document.getElementById('test'),
htmlContent = node.innerHTML,
// htmlContent = "Some <span class="foo">sample</span> text."
textContent = node.textContent;
// textContent = "Some sample text."
Посмотреть MDN для получения более подробной информации:
'.textContent' не поддерживается в IE8 и ниже, что делает его несколько сложным в использовании. – Blender
Правда. Indead, 'innerHTML' не возвращает только текстовое содержимое по запросу в вопросе. Я бы воспользовался решением, основанным на обнаружении функции '.textContent', с отступлением для
dhar
Хотя более старый вопрос, _.textContent_ - более подходящий ответ для сегодняшнего мира. – Donovan