Вопрос:
Я запутался в чем разница между .innerHTML и .value в JavaScript. Вот мой код:
<body> Input string: <input type=»text» id=»input» /> …. </body>
Когда я использую этот код, я не могу получить содержимое входной строки:
var str=document.getElementById(«input»).innerHTML;
Пока я использую следующий код, он работает:
var str=document.getElementById(«input»).value;
Кто-нибудь знает, в чем разница между ними?
Ответ №1
value относится к значению входного элемента (или textearea)
<input value=»hello world»>
значение будет «hello world» (или любое значение, введенное внутри)
innerHTML относится к содержимому внутри HTML-элемента.
<div> <span class=»hello»> All tags and their children are include in innerHTML. </span> All this is part of innerHTML. </div>
innerHTML тега div будет строка:
‘<span class=»hello»> All tags and their children are include in innerHTML. </span> All this is part of innerHTML.’ Ответ №2
Свойство .innerHTML ссылается на буквенную разметку HTML, которая, будучи назначена, интерпретирована и включена в DOM (Document Object Model) для текущего документа. С другой стороны, свойство .value просто ссылается на содержимое обычно элемента управления ввода HTML, такого как текстовое поле. Не каждый элемент HTML поддерживает свойство ввода, тогда как большинство, если не все, поддерживают свойство innerHTML.
Ответ №3
.value дает вам установленное в данный момент значение элемента формы (input, select, textarea), тогда как .innerHTML создает строку HTML на основе узлов DOM, содержащихся в этом элементе.