2012-04-12 9 views
0

Die Zeichenfolge s enthält Leerzeichen, Tabulator, CR und LF. alert() kann richtig formatieren, aber $("#mydiv").text(s) verloren CR und LF, ich hoffe, $("#mydiv").text(s) kann richtig formatieren, wie kann ich das tun?Wie kann ich Platz, Tab, CR und LF behalten?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <script src="Js/jquery-1.7.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $("#Button1").bind("click", function() { 
       alert(s); 
       $("#mydiv").text(s); 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <p> 
     <input id="Button1" type="button" value="button" /></p> 
    <div id="mydiv"> 
    </div> 
</body> 
</html> 
+0

es sinnvoller, die [ ''

Antwort

3

Sie können die #mydiv ein bisschen CSS-Stil für diese geben:

#mydiv { white-space: pre; } 

Das Problem ist, dass die jQuery .text() Methode den HTML-Text nur setzt, und HTML-Elemente verbinden alle aufeinander folgenden weißen Raum Zeichen in ein einzelnes Leerzeichen und entfernen Sie auch die erste und letzte, wenn sie Blockelemente sind (mit <pre> die bemerkenswerte Ausnahme). Diese CSS-Deklaration sagt dem Div in dieser Situation wie ein <pre> zu handeln.

+1

Vielleicht ist "alle aufeinander folgenden Leerzeichen als ein einzelnes Leerzeichen behandelt" ist besser als "Weißraum nicht respektieren". –

+0

@AndrewMarshall yep, danke. Korrigiert es. – Boldewyn

-1

Versuchen Sie, .html (n) statt .text (n)

+2

Das wird nichts ändern. –

Verwandte Themen