jQuery.html()在IE7和IE8上删除双空格的最佳解决方法是什么

时间:2011-11-29 09:19:27

标签: jquery html

假设您有代码:

<!DOCTYPE html>
<html>
<head>
    <title>jQuery.html() - bug on IE7 and IE8</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
    <script>
        $(function () {
            $("#list").html('<li>List  item  with  double  spaces.</li>');
            console.log("Does inner html contain double space? ", $("#list").html().indexOf("  ") != -1);
            console.log("Binded HTML:", $("#list").html());
        });
    </script>
</head>
<body>
    <ul id="list">
    </ul>
</body>
</html>

在IE9上,FF,Chrome工作正常(用双重代码绑定html),但在IE7和IE8上,我将双倍空格转换为一个空格。比较不同浏览器的控制台输出。

我不能使用jQuery.text(),因为我必须使用html内容。

你遇到过这样的错误吗?您使用了哪些解决方法?

1 个答案:

答案 0 :(得分:0)

即使使用正则表达式(如/\s\s+/g),正如您所说,在IE中,使用html()将双空格转换为一个空格。

您必须使用原始内容:

var content='<li>List  item  with  double  spaces.</li>';
$("#list").html(content);
console.log("Does inner html contain double space? ", content.indexOf("  ") != -1);