Похоже, вы столкнулись путающая разница между свойством элемента value
и атрибутом value
. Это не то же самое вещи.
Дело в том, что атрибут value служит для значения по умолчанию, поэтому, если элемент уже имеет значение свойства, тогда изменение атрибута value не будет отражено в пользовательском интерфейсе.
Документация говорит this:
Использование SetAttribute(), чтобы изменить некоторые атрибуты, наиболее заметные значения в XUL, работает непоследовательно, так как атрибут определяет значение по умолчанию. Чтобы получить доступ или изменить текущие значения, вы должны использовать свойства. Например, используйте elt.value вместо elt.setAttribute ('value', val).
Так, чтобы продемонстрировать эту ситуацию считают эту небольшую демо:
document.getElementById("01").getElementsByTagName("input")[0].value = 'property set';
document.getElementById("01").getElementsByTagName("input")[0].setAttribute("value", "two");
<div id="01">
<input type="text" />
</div>
В приведенном выше фрагменте кода атрибут значение действительно обновляется дорожить two
, и вы можете проверить это, если вы попробуете чтобы прочитать его обратно с getAttribute('value')
, однако свойство value имеет приоритет над атрибутом, поэтому позже не отображается.
Вы пробовали .value = 1 вместо .setAttribute ("value", "1") ?? – Sushil
Если бы я был сам, я бы просто сохранил элемент в var и использовал var.value = 1 вместо использования метода setAttribute. Если это не соответствует вашей общей цели, разместите часть кода вокруг вашего заявления, и мы свяжемся с вами. – Fata1Err0r
@ Сушиль да, спасибо. это работает. –