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