Как получить текст тега div, используя только javascript (без jQuery)
Я пробовал это, но показывал "undefined".
function test() {
var t = document.getElementById('superman').value;
alert(t); }
Есть ли способ получить значение с помощью простого Javascript no jQuery Пожалуйста!
Ответы
Ответ 1
Вероятно, вы захотите попробовать 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:
Ответ 2
Поскольку textContent
не поддерживается в IE8 и старше, это обходное решение:
var node = document.getElementById('test'),
var text = node.textContent || node.innerText;
alert(text);
innerText
работает в IE.
Ответ 3
Вы можете использовать innerHTML
(затем разобрать текст из HTML) или использовать innerText
.
let textContentWithHTMLTags = document.querySelector('div').innerHTML;
let textContent = document.querySelector('div').innerText;
console.log(textContentWithHTMLTags, textContent);
innerHTML
и innerText
поддерживается всеми браузерами (кроме FireFox <44), включая IE6.