IE的问题从$(“#content”)。text()
中删除新行HTML代码
<div id="content">
<p>hello world</p>
<p>this is a paragraph</p>
</div>
jQuery代码
alert($("#content").text());
结果(IE) IE删除新行(\ n)如何解决此问题?
hello worldthis is a paragraph
结果(FF)
hello world
this is a paragraph
答案 0 :(得分:2)
如果使用div的innerText属性,它可以正常工作。尝试替换
alert($("#content").text());
与
alert( document.getElementById( "content" ).innerText );
答案 1 :(得分:2)
Internet Explorer将所有空白字符和换行符标准化为SPACE字符。据我所知,你无能为力。
顺便说一下,似乎IE9 beta改变了这种行为。我得到了新的一行。答案 2 :(得分:1)
我很确定Sime Vidas是对的。我已经尝试过几乎所有东西,无论我尝试什么(innerText,innerHTML,jQuery方法,TextRange,克隆元素并将其置于pre元素等等),白色空间被删除。我猜IE会在任何类型的电话上删除它。它在渲染过程中显然是因为白色空间:pre会显示它,但通过javascript检索它将始终删除除pre和textarea内容之外的空白区域。
此行为在IE9中已更改。旧版本中唯一的解决方案是在可能的情况下用服务器上的新标记(或任何真正的分号等)替换新的行字符,然后在检索文本内容后将它们替换回\ n在javascript中。
答案 3 :(得分:0)
如果您考虑以下事项,不确定是否会找到使用text()的解决方案:
由于HTML解析器的变化 在不同的浏览器中,文本 返回可能会有所不同 其他空白区域。