Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jQuery中将换行符从HTMLdiv复制到textarea?_Javascript_Jquery_Html_Textarea_Text Formatting - Fatal编程技术网

Javascript 如何在jQuery中将换行符从HTMLdiv复制到textarea?

Javascript 如何在jQuery中将换行符从HTMLdiv复制到textarea?,javascript,jquery,html,textarea,text-formatting,Javascript,Jquery,Html,Textarea,Text Formatting,考虑以下HTML页面片段: <div id='myDiv'> Line 1.<br /> Line 2<br /> These are &ltspecial&gt; characters &amp; must be escaped !@@&gt;&lt;&gt; </div> <input type='button' value='click' id='myButton'

考虑以下HTML页面片段:

<div id='myDiv'>
    Line 1.<br />
    Line 2<br />
    These are &ltspecial&gt; characters &amp; must be escaped !@@&gt;&lt;&gt;
</div>
<input type='button' value='click' id='myButton' />
<textarea id='myTextArea'></textarea>

<script>
    $(document).ready(function () {
        $('#myButton').click(function () {
            var text = $('#myDiv').text();
            $('#myTextArea').val(text);
        });
    });
</script>
<div id='myDiv'><pre>
Line 1.
Line 2
These are &ltspecial&gt; characters &amp; must be escaped !@@&gt;&lt;&gt;
</pre></div>

第1行。
第2行
这些是<;特殊字符&;一定要逃走@@ $(文档).ready(函数(){ $('#myButton')。单击(函数(){ var text=$('#myDiv').text(); $('#myTextArea').val(文本); }); });
首先,有一个id为
myDiv
的div元素。它包含一些类似于在运行时在我的生产网站中从SQL数据库检索的文本

接下来是一个按钮和一个文本区域。单击按钮时,我希望
myDiv
中的文本显示在文本区域中


然而,使用我提供的代码,换行符被剥离出来。考虑到转义特殊字符是绝对不可协商的,我能做些什么呢?

您的代码在Firefox和Chrome中都非常适合我:

但是,如果您的客户端不执行您想要的操作,请使用换行符替换

s

编辑:在IE7中测试,代码中断。所以我用我的建议更新了小提琴:

像这样做你的HTML:


第1行。
第2行
这些是<;特殊字符&;一定要逃走@@

现在
.text()
将返回与您在
标记中指定的文本完全相同的文本,即使在IE中也是如此。

我应该补充的是,从用户输入的文本区域中读取换行符对我来说一直没有问题。问题在于在文本区域中设置文本。到目前为止,我找到的唯一解决方案是将文本保存在一个序列化字符串中,但这感觉真的像是一个难题。在Chrome中为我工作。那很有趣。我甚至很少在Firefox中测试我的代码,因为我们是一家只支持IE的商店:-(:-(:-)(:-)(不幸的是,你用换行符替换

的建议不起作用,因为
$('#myTextArea')。val()
返回
第1行。第2行这些…
没有任何断行的迹象。你在JSFIDLE上链接的解决方案对我不起作用。它得到了正确的断行符,但没有转义特殊字符。这将使普通用户无法使用这些字符,并使它们受到恶意使用的XSS攻击到目前为止,我倾向于像以前一样只使用序列化字符串。您必须明确要转义的字符。我需要转义所有可能不安全的字符。好的,这意味着,和&