← Все вопросы
Чем textContent отличается от value? Беру текст из input, а получаю пусто
5
Я думал, текст элемента всегда в textContent. Но у поля ввода textContent пустой, хотя я туда что-то написал. А у обычного <p> наоборот. Не пойму логику.
2 ответа
9
✓ Принятый ответ — помог автору
Это разные вещи для разных элементов:
.value— то, что введено в поля формы:<input>,<textarea>,<select>. Текст внутри поля живёт вvalue, а не вtextContent..textContent— текст, который виден внутри обычных тегов:<p>,<div>,<span>,<button>и т.п.
const input = document.getElementById('name');
console.log(input.value); // то, что напечатал пользователь
const p = document.getElementById('greeting');
p.textContent = 'Привет!'; // меняем видимый текст абзаца
Поэтому у <input> читаешь value, а у <p> — textContent. Перепутал свойство — получишь пусто.
3
Короткая шпаргалка: «поля ввода → .value, всё остальное → .textContent». Если когда-нибудь захочешь вставить именно HTML (теги), есть ещё .innerHTML, но для простого текста безопаснее textContent.
Ваш ответ
Войдите, чтобы ответить на вопрос.