如何保留空格,标签,CR和LF?

时间:2012-04-12 07:14:11

标签: jquery html

字符串s包括空格,制表符,CR和LF。 alert()可以正确呈现格式, 但是$("#mydiv").text(s)丢失了CR和LF,我希望$("#mydiv").text(s)可以正确呈现格式,我该怎么办呢?

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

2 个答案:

答案 0 :(得分:3)

您可以为此#mydiv提供一些CSS样式:

#mydiv { white-space: pre; }

问题是,jQuery .text()方法只是设置HTML文本,HTML元素将所有连续的空格字符连接到一个空格,并且如果它们是块元素,也会剥离第一个和最后一个( <pre>是一个值得注意的例外)。这个CSS声明告诉div在这种情况下表现得像<pre>

答案 1 :(得分:-1)

尝试使用.html(s)代替.text(s)