Як отримати текст тегу div, використовуючи лише javascript (без jQuery)


93

Я спробував це, але показав "невизначено".

function test() {
var t = document.getElementById('superman').value;
alert(t); }

Чи є спосіб отримати значення за допомогою простого Javascript без jQuery Будь ласка!

Відповіді:


163

Можливо, ви захочете спробувати 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

2
Правда. Справді, innerHTMLне повертає лише текстовий вміст, як того вимагає запитання. Я б реалізував рішення, засноване на .textContentвиявленні функцій із
запасним варіантом

4
Хоча давнє запитання, .textContent є найбільш доречною відповіддю для сучасного світу.
Донован

Це допомагає мені набагато більше. Дуже дякую.
LogoS

9

Оскільки textContentне підтримується в IE8 і старіших версіях, ось обхідний шлях:

var node = document.getElementById('test'),
var text  = node.textContent || node.innerText;
alert(text);

innerText працює в IE.


0

Ви можете використовувати innerHTML(потім проаналізувати текст з HTML) або використовувати innerText.

let textContentWithHTMLTags = document.querySelector('div').innerHTML; 
let textContent = document.querySelector('div').innerText;

console.log(textContentWithHTMLTags, textContent);

innerHTMLі innerTextпідтримується всіма браузерами (крім FireFox <44), включаючи IE6 .


0

Насправді вам не потрібно викликати document.getElementById()функцію, щоб отримати доступ до вашого div.

Ви можете використовувати це objectбезпосередньо id:

text = test.textContent || test.innerText;
alert(text);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.