假设你有代码:
<!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 与双代码绑定(bind)),但在 IE7 和 IE8 上,我将双空格转换为一个空格。比较不同浏览器上的控制台输出。
我不能改用 jQuery.text() 因为我必须使用 html 内容。
你遇到过这样的bug吗?您使用了什么解决方法?
最佳答案
即使使用正则表达式(如 /\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);
关于jquery - jQuery.html() 在 IE7 和 IE8 上删除双空格的最佳解决方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8308335/