2012-04-12 86 views
0

字符串s包含空格,製表符,CR和LF。 alert()可以正確渲染格式, 但是$("#mydiv").text(s)丟失了CR和LF,我希望$("#mydiv").text(s)可以正確渲染格式,我該怎麼做?如何保持空格,製表符,CR和LF?

<!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

它可能更有意義使用[''

回答

3

,您可以給#mydiv此位的CSS樣式:

#mydiv { white-space: pre; } 

的問題是,jQuery的.text()方法只設置HTML文本和HTML元素加入所有連續的空格字符添加到單個空間,並且還會剝離第一個和最後一個,如果它們是塊元素(<pre>值得注意的例外)。這種CSS聲明告訴div在這種情況下的行爲如同<pre>

+1

也許「所有連續的空白被視爲單個空間」比「不尊重空白」更好​​。 – 2012-04-12 07:19:36

+0

@AndrewMarshall是的,謝謝。更正它。 – Boldewyn 2012-04-12 07:21:11

-1

嘗試使用html的(一個或多個),而不是的.text(多個)

+2

這不會改變任何東西。 – 2012-04-12 08:08:30