2010-01-19 3 views
1

Я бы знать, если это ошибка ... Когда я начеку содержание HTML от #test, я получаю:JQuery и ввод текста

<input name="sum" value="" type="text"> 

тогда как он был установлен в 55 раз перед настороже, и я можно просмотреть его на сервере.

Можете ли вы сказать мне, почему? :-)

<div id="test"> 
    <input type="text" name="sum" value=""> 
</div> 

<script language="javascript"> 
$(document).ready(function() { 
    $("#test").find("input[name='sum']").val(55); 
    alert($("#test").html()); 
}); 
</script> 
+0

Добро пожаловать в StackOverflow, Том! – Sampson

+0

Спасибо, Джонатан! – Tom

ответ

1

Это не ошибка. Значение #test не является частью содержимого HTML для ввода - оно было установлено после того, как элемент был вставлен в DOM - и, следовательно, функция html() не возвращает его.

+0

Хорошо спасибо, я думал, что функция html() изменилась бы в соответствии с обновлениями от детей ... – Tom

+0

Если бы вы добавили больше элементов (например) внутри div, html() вернет их, но изменение значений атрибутов не будет отражение. Я думаю. – eliah

+0

Есть ли способ увидеть, как выглядит источник? Спасибо! – Tom

3

Javascript не изменяет физическую разметку на странице. Он изменяет DOM. DOM построен из разметки, но после этого разметка не имеет решающего значения.

Вы не хотите, чтобы предупредить HTML, вы хотите, чтобы предупредить значение ввода:

alert($("#test :input[name='sum']").val()); 

Смежные вопросы