IE8使用jQuery .html()时会追加

IE8 is appending when using jQuery .html()

本文关键字:追加 使用 jQuery html IE8      更新时间:2023-09-26

我和我的同事花了大约一个小时来研究这个问题,但我们还是没有弄清楚。这在Chrome和Firefox中工作得很好。这基本上是它的简化版本:

http://jsbin.com/osebuc

它在这个测试用例中工作得很好,但在IE8中,我们的实际东西是附加HTML。实际上,我们在代码中只有$('.panda').html(someHtml),但在IE中,它每次都附加HTML,而不是替换HTML。

我们也尝试了$('.panda').empty().html(someHtml)在IE中,但随后IE似乎"失去了跟踪".panda和做console.log($('.panda').length)返回1,然后另一个按钮点击(回到原来的HTML),返回0

还有人看到这个吗?有人知道为什么会这样吗?

原因:
我的同事和我正试图使一些表单看起来更漂亮(测试版),而不触及原始的HTML(我们不能),但有一种方法可以回到原始的表单(经典),如果他们点击一个按钮。为此,我们将原始HTML缓存到var中,然后构建新的测试版HTML,将其保存到var中,然后在toggle中执行上述示例。

我刚刚遇到了同样的问题:IE7/IE8中的.html()正在追加。

我通过以下操作对它进行了排序:

$('panda').html("").html(someHtml);

基本上,手动将其设置为空白,然后添加来自ajax调用的代码。

虽然我个人更喜欢jQuery,但您尝试过普通的javascript吗?

$('.panda')[0].innerHTML = "";
$('.panda')[0].innerHTML = "some html";

也有同样的问题。确保你的HTML是有效的。我有一个不同的开始和结束标签^^