Pergunta

Eu estou tentando dividir o innerText de uma div sobre as novas linhas na fonte para ele. Esta multa trabalha com:

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

Mas esta falha no IE 7, devido às novas linhas aparentemente sendo retirados. jQuery 1.3.2 não parecem estar em falta desde que eu também tentei tanto:

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

e

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

Nem qualquer dos trabalhos acima se eu mudar o div a um pré.

Parece que as novas linhas são uma vez que a fonte é analisado no DOM. :( É isto assim? Será que não há maneira de chegar a eles com javascript?

Foi útil?

Solução

Newlines são espaços em branco, e geralmente não são preservados. Eles querem dizer a mesma coisa que um espaço faz.

Outras dicas

Tente divisão em "\n" vez de "\r\n".

Para fazer as duas coisas, considere a divisão na "\r?\n" padrão.

IE faz novas linhas perder no conteúdo do elemento, exceto:

  • em pre (e plaintext, não que que já usado neste século)
  • em textarea, onde também acrescenta espúrios ‘\ r do que não contam para os seus próprios mecanismos de caracteres de contagem

No entanto, independentemente disso, isto não vai funcionar:

split ( "\ r \ n | \ r | \ n")

String.split de JavaScript, em contraste com Java do, leva uma string delimitador simples, não um padrão de regex.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top