0

字符串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>
4

2 回答 2

3

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

#mydiv { white-space: pre; }

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

于 2012-04-12T07:18:24.313 回答
-1

尝试使用 .html(s) 而不是 .text(s)

于 2012-04-12T07:32:33.447 回答