2

我正在尝试在源中的换行符上拆分 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来解决它们?

4

3 回答 3

2

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

为此,请考虑在模式上进行拆分"\r?\n"

于 2009-03-09T23:11:18.150 回答
1

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

于 2009-03-09T23:42:52.867 回答
1

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

  • pre(并且plaintext,不是本世纪曾经使用过的那个)
  • in textarea,它还添加了不计入其自身字符计数机制的虚假 '\r's

但是,无论如何,这都行不通:

拆分("\r\n|\r|\n")

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

于 2009-03-10T04:38:48.397 回答