jQuery html () в Firefox (использует .innerHTML) игнорирует изменения DOM
Я действительно удивлен, что раньше я не сталкивался с этой проблемой, но кажется, что вызов функции jQueries .html () для элемента игнорирует изменения в DOM, то есть возвращает HTML в исходном коде. IE не делает этого. jQueries .html () просто использует свойство innerHTML для внутреннего использования.
Это должно случиться? Я на Firefox 3.5.2. У меня есть пример ниже, где независимо от того, на что вы меняете значение текстового поля, innerHTML элемента «container» всегда возвращает только значение, определенное в разметке HTML. Пример не использует jQuery только для упрощения (результат такой же, как и для jQuery).
У кого-нибудь есть работа, где я могу получить html-контейнер в его текущем состоянии, то есть, включая любые изменения в DOM по сценарию?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<script type="text/javascript">
<!--
function BodyLoad(){
document.getElementById("textbox").value = "initial UPDATE";
DisplayTextBoxValue();
}
function DisplayTextBoxValue(){
alert(document.getElementById("container").innerHTML);
return false;
}
//-->
</script>
</head>
<body onload="BodyLoad();">
<div id="container">
<input type="text" id="textbox" value="initial" />
</div>
<input type="button" id="button" value="Test me" onclick="return DisplayTextBoxValue();" />
</body>
</html>