Pregunta

Estoy tratando de dividir el texto interno de un div en las nuevas líneas en la fuente para ello. Esto funciona bien con:

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

Pero esto falla en IE 7, debido a que las nuevas líneas aparentemente se eliminan. jQuery 1.3.2 no parece tener la culpa ya que también probé ambos:

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

y

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

Tampoco funciona ninguno de los anteriores si cambio el div a un pre.

Parece que las nuevas líneas son una vez que la fuente se analiza en el DOM. :( ¿Es esto así? ¿No hay forma de llegar a ellos con JavaScript?

¿Fue útil?

Solución

Las nuevas líneas son espacios en blanco, y generalmente no se conservan. Significan lo mismo que un espacio.

Otros consejos

Intente dividir en " \ n " en lugar de " \ r \ n " .

Para hacer ambas cosas, considere dividir en el patrón " \ r? \ n " .

IE pierde nuevas líneas en el contenido del elemento, excepto:

  • en pre (y texto plano , no es que se haya usado este siglo)
  • en textarea , donde también agrega urious \ r’s espurios que no cuentan para sus propios mecanismos de conteo de caracteres

Sin embargo, independientemente de eso, esto no funcionará:

  

división (" \ r \ n | \ r | \ n ")

String.split de JavaScript, en contraste con el de Java, toma una cadena de delimitador simple, no un patrón de expresiones regulares.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top