Question

J'essaie de scinder le texte innerText d'une div sur les nouvelles lignes dans le source. Cela fonctionne bien avec:

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

Mais cela échoue dans IE 7, car les nouvelles lignes sont apparemment supprimées. jQuery 1.3.2 ne semble pas être en faute puisque j'ai aussi essayé les deux:

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

et

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

Ni l'un des travaux ci-dessus ne fonctionne si je change le div en un pré.

Il semble que les nouvelles lignes soient une fois que la source est analysée dans le DOM. :( Est-ce vrai? N'y a-t-il aucun moyen de les résoudre avec du javascript?

Était-ce utile?

La solution

Les nouvelles lignes sont des espaces et ne sont généralement pas conservées. Ils veulent dire la même chose qu’un espace.

Autres conseils

Essayez de scinder sur "\ n" \ au lieu de "\ r \ n" .

Pour faire les deux, envisagez de scinder le motif "\ r? \ n" .

IE perd les nouvelles lignes dans le contenu de l'élément, sauf:

  • dans pre (et texte en clair , même si cela n'a jamais été utilisé au cours du siècle)
  • dans textarea , où il ajoute également des ‘\ r’ parasites qui ne comptent pas dans ses propres mécanismes de décompte des caractères

Cependant, peu importe cela, cela ne fonctionnera pas:

  

scission ("\ r \ n | \ r | \ n")

String.split de JavaScript, contrairement à Java, prend une simple chaîne de délimitation, pas un motif regex.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top