假设您有代码:
<!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内容。
你遇到过这样的错误吗?您使用了哪些解决方法?
答案 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);