2009-03-09 14 views
2

J'essaie de diviser le innerText d'un div sur les nouvelles lignes dans la source pour cela. Cela fonctionne bien avec:Perd les nouvelles lignes dans le contenu div dans IE 7

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

Mais cela échoue dans IE 7, en raison de l'élimination des nouvelles lignes. jQuery 1.3.2 ne semble pas être en faute puisque je aussi essayé les deux:

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

et

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

non plus aucun des travaux ci-dessus si je change la div à un pré.

Il semble que les nouvelles lignes sont une fois que la source est analysée dans le DOM. :(Est-ce donc? N'y at-il moyen d'obtenir à eux avec javascript?

Répondre

1

passage à la ligne . des espaces, et ne sont généralement pas conservés Ils veulent dire la même chose que d'un espace ne

2

Essayez de diviser le "\n" au lieu de "\r\n".

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

+0

J'ai essayé \ n, \ r, \ r \ n | \ r | \ n, et d'autres choses qui devraient fonctionner. Ce n'est pas la regex, j'en suis sûre. –

1

IE fait perdre dans les nouvelles lignes du contenu des éléments, à l'exception:.

  • dans pre (et plaintext, pas que ce soit jamais utilisé ce siècle)
  • dans textarea, où il ajoute également faux « \ r qui ne comptent pas pour ses propres mécanismes caractère de comptage

Cependant, peu importe que, cela ne fonctionnera pas:

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

String.spl de JavaScript Contrairement à Java, il prend une chaîne de délimitation simple, et non un motif regex.

Questions connexes