Comment puis-je remplacer certaines de retour chariot saut de ligne suivi d'un tiret avec un <br/>?
Comment puis-je remplacer la séquence ASCII ASCII 13 10 - (CR LF tableau de bord ou /r/n) dans le texte à l'intérieur d'un TD élément dans une page web à l'aide de javascript ou jQuery? Il existe des quesitons sur ce sujet dans stackoverflow et ailleurs, mais les solutions proposées ne fonctionnent pas sur ce scénario particulier. Entrant le code HTML est généré dynamiquement par un morceau de mon client logiciel de legs qui ne va pas être changé, mais il fait référence à un fichier javascript que je peux changer. Une version abrégée de la page est donnée ci-dessous. Cette page contient entre zéro et vingt lignes de données, dont certains contiennent plusieurs lignes. Mes utilisateurs sont sur Internet Explorer 8 et aucun des deux lignes ci-dessous est de travail. J'ai essayé tout simplement de remplacer le retour chariot et simplement remplacer le saut de ligne. J'ai essayé à partir de javascript et de jQuery sans aucun effet visible. Lorsque j'enregistre la page à partir d'Internet Explorer 8 et l'afficher dans un éditeur hexadécimal, le retour chariot et saut de ligne personnages sont présents dans le client. Le noeud du problème est d'exposer l' /n dans le texte de JavaScript.
Je veux effectuer ce remplacement, car je veux que les deux lignes de texte qui doit apparaître dans la sortie affichée tout le temps de la séquence /r/n - existent dans la page dans un élément.
Remarque que j'ai inclus deux versions d'un remplacement, un jQuery et JavaScript. Ni fait ce que je veux faire.
<html>
<head>
<title>Page Testing </title>
<script src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('td').each(function () {
$this = $(this);
$this.html($this.html().replace(/\r\n\-/g, "<br/>-"));
this.innerHTML = (this.innerHTML.replace(/\r\n\-/g, "<br/>-"));
});
});
</script>
</head>
<body>
<table>
<tbody>
<tr>
<td>-First Content
-Second Line of Content</td>
<td>-How I want it to look<br/>-After the transformation</td>
</tr>
</tbody>
</table>
</body>
</html>
OriginalL'auteur earth_tom | 2012-05-09
Vous devez vous connecter pour publier un commentaire.
Votre question dit que vous ne se soucient que de les AFFICHER sur des lignes séparées, pas spécifiquement sur le remplacement de la \r\n.
Vous pourriez envisager de css pour résoudre ce problème.
Voir comment le blanc-les valeurs de l'espace de travail.
OriginalL'auteur Jeremy Lawson
Cela fonctionne pour votre cas spécifique:
Au lieu de chercher les caractères CRLF, il faut de tout espace blanc, suivi d'un tiret. Si il y a des tirets dans votre contenu qui suivent espaces, ils auront également la balise br ajouté.
Il y a un comportement étrange avec IE 8 pour les retours à la ligne. Si j'ai une explication que je vais mettre à jour ce.
Il ressemble à IE8 et au-dessous de la bande de l' %OA caractère avant le dom est rendu, le rendant presque impossible de le faire en javascript. Le css solution est vraiment optimal, mais il serait bien d'au moins savoir pourquoi ce qui se passe dans IE8.
OriginalL'auteur hellslam
D'un remplacement \n-mais vous avez dit que la séquence de caractères que vous essayez de les remplacer est \r\n-
Essayer de mettre la \r dans votre remplacer les expressions.
les caractères\r, alors pas normalement pris en charge windows/linux saut de ligne, souvent apparaître encore comme un retour à la ligne dans les navigateurs/source de téléspectateurs qui essayons de répondre à tout le monde.
OriginalL'auteur Jeremy Lawson
Vous pouvez essayer de
qui remplace à la fois le saut de ligne et retour chariot caractères.
this
respectivement?Yep. Sry. Je fixe ma réponse en conséquence.
Cela ne fonctionne pas avec IE8.
Pas? Cela me surprend. Pouvez-vous regarder dans ce qui va la remplacer appel et ce qui en sort dans le JS console? Mais: comme c'est uniquement pour l'affichage, l'on a accepté la réponse est moins hacky de toute façon...
OriginalL'auteur radiospiel