【发布时间】:2010-11-26 05:02:42
【问题描述】:
我真的很惊讶我以前没有遇到过这个问题,但似乎在元素上调用 jQueries .html() 函数会忽略 DOM 中的更改,即它返回原始源中的 HTML。 IE 不这样做。 jQueries .html() 只是在内部使用 innerHTML 属性。
这是注定要发生的吗?我在 Firefox 3.5.2 上。我在下面有一个示例,无论您将文本框值更改为什么,“容器”元素的 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>
【问题讨论】:
标签: jquery html firefox dom innerhtml