代码之家  ›  专栏  ›  技术社区  ›  Nathan Bubna

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

  •  2
  • Nathan Bubna  · 技术社区  · 15 年前

    我试图在源代码的新行上拆分一个DIV的innerText。这对以下情况很好:

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

    但这在IE7中失败了,因为新行显然被删掉了。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 回复  |  直到 13 年前
        1
  •  1
  •   John Saunders Tony    15 年前

    换行符是空白的,一般不保留。它们的意思和空间一样。

        2
  •  2
  •   Jason Cohen    15 年前

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

    要同时执行这两项操作,请考虑在模式上拆分 "\r?\n" .

        3
  •  1
  •   bobince    15 年前

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

    • 在里面 pre (和) plaintext 不是本世纪使用过的)
    • 在里面 textarea ,其中还添加了伪\r s,这些伪s不计入其自身的字符计数机制中。

    但是,不管怎样,这都不起作用:

    拆分(“\r\n \r \n”)

    JavaScript的String .String,与Java的对比,采用一个简单的分隔符字符串, 正则表达式模式。