В чем разница между document.getElementById ("test"). Value и document.getElementById ("test"). InnerHTML - PullRequest
6 голосов
/ 30 января 2012
document.getElementById("test").value

document.getElementById("test").innerHTML

Первый означает адрес, а второй - значение, хранящееся по адресу? Кроме того, где можно найти документацию по свойству value?

Ответы [ 5 ]

10 голосов
/ 30 января 2012

.value возвращает текущее установленное значение элемента формы (input, select, textarea), тогда как .innerHTML создает строку HTML на основе узлов DOM, содержащихся в элементе.

Для простого примера перейдите к демонстрационной версии JS Fiddle , введите новое значение в input и затем выйдите из ввода.

В тесте используется следующий JavaScript:

document.getElementById('input').onchange = function(){
    alert('innerHTML: ' + document.getElementById('input').innerHTML + '; whereas value: ' + document.getElementById('input').value);
};

(текст выше обновлен после комментария, оставленного не я , в комментариях ниже.)

3 голосов
/ 30 января 2012

Многие элементы в HTML могут иметь идентификатор, поэтому определение value будет меняться для каждого.

value будет по сути тем, что этот элемент понимает как значение.Например, <input type=text> даст вам текст внутри.

innerHTML будет тем, что внутри HTML-кода.Например, у <TR> будут дочерние элементы TD, плюс все, что там есть.

value и innerHTML могут (обычно) записываться, а также считываться.

3 голосов
/ 30 января 2012

некоторые HTML элементы имеют атрибут "value", например <input/>, некоторые другие не имеют его.

, если вы хотите изменить их, вы можете использовать атрибут DOM (используется с Javascript) innerHTML (если они есть).этот атрибут представляет содержимое элемента, поэтому его можно использовать для элементов, принимающих для вложения другого элемента, таких как <div/>,

1 голос
/ 27 февраля 2013

Это связано с тем, как некоторые теги работают на основе их атрибутов, когда другие работают с текстом между открывающим и закрывающим тегами.

.value извлекает любое значение, установленное для атрибута valueтег.innerHTML извлекает все, что находится между открывающим и закрывающим тегом.

Например, если тег HTML был
<input type="text" value="Enter name here" id="user_name" />
и вы использовали JavaScript
var name = document.getElementById('user_name').value
объявил бы переменную name и присвоил бы ей значение «Введите имя здесь» (при условии, что пользователь не изменил его).С другой стороны, если у вас есть HTML, такой как
<div id="abc">blah blah</div>
, тогда вы будете использовать
var text = document.getElementById('abc')
, и для переменной text будет установлено значение "бла-бла".

0 голосов
/ 27 июля 2015
document.getElementByid('test').value

- используется для указания значения в текстовом поле. Как

<input type="text" id="test" name="test">

Теперь это значение в текстовом поле.

Пока document.getElementByid('test').innerHTML используется для присвоения значения в указанной области. Нравится

<div id="test">
</div>

Теперь он печатает значение в области div.

...