以前にこの問題に遭遇したことがないことに本当に驚いていますが、要素で jQueries .html() 関数を呼び出すと、DOM の変更が無視されるようです。つまり、元のソースの HTML が返されます。IEはこれを行いません。jQueries .html() は、内部で innerHTML プロパティを使用するだけです。
これは起こることを意図していますか?私は Firefox 3.5.2 を使用しています。以下にサンプルを示します。テキスト ボックスの値を何に変更しても、"container" 要素の innerHTML は 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>