Domanda

Sto provando a dividere il testo interno di un div sulle nuove righe nella fonte. Funziona bene con:

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

Ma questo fallisce in IE 7, a causa delle nuove righe apparentemente eliminate. jQuery 1.3.2 non sembra essere in errore poiché ho provato anche entrambi:

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

e

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

Nemmeno uno dei suddetti lavori se cambio div in pre.

Sembra che i newline siano una volta che l'origine viene analizzata nel DOM. :( È così? Non c'è modo di raggiungerli con JavaScript?

È stato utile?

Soluzione

I newline sono spazi bianchi e generalmente non vengono conservati. Significano la stessa cosa di uno spazio.

Altri suggerimenti

Prova a dividere " \ n " anziché " \ r \ n " .

Per fare entrambe le cose, considera la divisione sul modello " \ r? \ n " .

IE perde nuove righe nel contenuto dell'elemento, tranne:

  • in pre (e in chiaro , non che sia mai stato usato in questo secolo)
  • in textarea , dove aggiunge anche spurie che non contano per i propri meccanismi di conteggio dei personaggi

Tuttavia, indipendentemente da ciò, questo non funzionerà:

  

Split (" \ r \ n | \ r | \ n ")

String.split di JavaScript, contrariamente a quello di Java, accetta una semplice stringa delimitatore, non un modello regex.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top