input
элементы не содержат HTML.У них есть value
s.
Нет, вам не нужно ничего обновлять, изменение должно появиться, как только JavaScript завершит работу (например, завершится обработчик события), и у браузера появится моментобновить дисплей.Если вы делаете это в тесном цикле или что-то в этом роде, вы не увидите результаты до конца цикла, но я не сразу понял, что именно вы делали - если только вы не пошаговыечерез код в инструментах разработчика?Вы не увидите обновления, пока вы пошаговые.
Если нет, то может ли этот элемент не существовать (пока), когда вы вызываете свой код?Помните, что если ваш код находится в элементе script
, который находится в HTML до элемента, который вы пытаетесь обновить, вы должны быть уверены, что заставите его ждать, пока остальная часть страницы не будетбыл проанализирован (например, с помощью обратного вызова ready
).В качестве альтернативы просто сделайте , как рекомендуют ребята из YUI , и добавьте тег script
в конце body
.
Вот рабочий пример:
jQuery(function($) {
setInterval(function() {
$("input[name='group']")[0].value = "Updated " + new Date();
}, 500);
});
Живая копия
Разбивка:
- Ожидание готовности DOM (помещая код в функцию, которую я передаю в
jQuery
; этосокращенный способ записи jQuery(document).ready(...)
). - Настройка интервального таймера для обновления каждые 500 мс.
- В интервальном обратном вызове найдите элемент ввода с именем"group" и обновите его значение.
Update : Вот более простая серия примеров, демонстрирующих в целом "элемент еще существует?"вещь:
Пример 1:
<form>
<input type='text' name='group' value='original value' size='60'>
</form>
<script type='text/javascript'>
// This works, because it's _after_ the element
// it operates on
$("input[name='group']")[0].value = "Just one update: " + new Date();
</script>
Живая копия
Пример 2:
<script type='text/javascript'>
// This FAILS, because it's _before_ the element
// it operates on
$("input[name='group']")[0].value = "Just one update: " + new Date();
</script>
<form>
<input type='text' name='group' value='original value' size='60'>
</form>
Живая копия
Пример 3:
<script type='text/javascript'>
// This works, because although this script tag is before
// the element, we're using `ready` to wait until the DOM
// is ready
$(function() {
$("input[name='group']")[0].value = "Just one update: " + new Date();
});
</script>
<form>
<input type='text' name='group' value='original value' size='60'>
</form>
Живая копия