在IE 7中丢失div内容的换行符

时间:2009-03-09 23:08:36

标签: javascript internet-explorer split newline innerhtml

我正在尝试在源代码中的换行符上拆分div的innerText。这适用于:

$('div').text().split("\r\n|\r|\n")

但是这在IE 7中失败了,因为新行显然被剥夺了。 jQuery 1.3.2似乎没有错,因为我也试过了两个:

$('div')[0].innerText.split("\r\n|\r|\n")

$('div')[0].innerHTML.split("\r\n|\r|\n")

如果我将div更改为pre。

,则上述任何一项都不起作用

看起来新行一旦将源解析为DOM。 :(是这样的吗?有没有办法用javascript来搞定它们?

3 个答案:

答案 0 :(得分:2)

尝试拆分"\n"而不是"\r\n"

要做到这两点,请考虑拆分模式"\r?\n"

答案 1 :(得分:1)

换行符是空格,通常不会保留。它们与空间的意思相同。

答案 2 :(得分:1)

IE确实丢失了元素内容的换行符,除了:

  • pre(和plaintext中,而不是本世纪使用的那个)
  • textarea中,它还添加了虚假的'\ r',不计入自己的字符计数机制

然而,无论如何,这都行不通:

  

分裂( “\ r \ n | \ r | \ n” 个)

与Java相比,JavaScript的String.split采用了一个简单的分隔符字符串,而不是一个正则表达式模式。