如何使用jQuery在文本区域中添加换行符?

6
我知道如何填充文本区域,但如何填充它以保持换行符?
例如:
HTML
    <div id="previous_purchases">blah blah blah<br />blah blah</div>

jquery

    $('#previous_purchases').click(function(){

        var what = $(this).text();

        $('#purchased').text(what);


});

所有的blah都会在文本区域中合并成一行。有什么想法吗?
编辑:我已经尝试使用html()而不是text,但结果相同。我认为使用html()应该会得到一个包含“
”的文本区域,但事实并非如此......它们都在同一行上。
即使是这段代码:
    $('#previous_purchases').click(function(){

        var what = $(this).html();

        $('#purchased').html(what);


});
3个回答

5

尝试执行以下操作:

    <!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="scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(
              function() {
                 $('#previous_purchases').click(function() {
                 var what = $(this).html().replace(/<br>/, '\n');
                 $('#purchased').html(what);
            });
        });
        </script>
    </head>
    <body>
    <div id="previous_purchases">blah blah blah<br />blah blah</div>
    <textarea id="purchased" cols="25" rows="10"></textarea>
    </body>
    </html>

请查看 Attributes/html

抱歉我应该澄清一下,html() 是我第一次尝试这个。 - willdanceforfun
我应该更清楚一些。您需要将HTML代码提取到“what”中,并使用html()方法将其添加到#purchased中。我在我的评论中编辑了一个完整的HTML示例,它可以正常工作。 - Joseph Yaduvanshi
抱歉如果第一句话听起来有点突兀,这并不是我的本意。希望这对你有用! - Joseph Yaduvanshi
没关系,我不是那个意思。通常上面的代码对我来说都能用,但我现在填的是一个文本域而不是一个 div。如果我用上述代码,它可以很好地更新 div 并保持换行符,但是对于文本域来说就不行了。 - willdanceforfun
1
我修复了代码以适应文本区域。我不知道IE支持在文本区域中换行,而Firefox和Chrome不支持(我使用DIV假设输出将是相同的)。因此,您将不得不使用正则表达式将换行符替换为新行,如下面的几篇帖子中所述。 - Joseph Yaduvanshi
它对我不起作用,我正在寻找这个:#("textarea").html("blah\nblah")在IE7中无法工作! - CallMeLaNN

2

你可以使用html()函数和路径格式的文本来替代调用text()函数。

$('#previous_purchases').click(function(){

                var what = $(this).text();

                $('#purchased').html(what);


});

这对我似乎不起作用 :| 我的意思是它应该...我的头脑告诉我它应该... - willdanceforfun

2

text()自动剥离HTML。因此,基本上您需要使用html()而不是text,并将
替换为\n。


你能否详细解释一下如何插入 \n?这是 textarea 如何解释新行的方式...但是如何将它们放进去呢? - willdanceforfun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接