Как скопировать символы новой строки из HTML div в textarea в jQuery? - PullRequest
3 голосов
/ 02 августа 2011

Рассмотрим следующий фрагмент 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 с идентификатором myDiv.Он содержит текст, похожий на тот, который может быть получен из базы данных SQL во время выполнения на моем рабочем веб-сайте.

Далее есть кнопка и текстовая область.Я хочу, чтобы текст в myDiv появлялся в текстовой области при нажатии кнопки.

Однако, используя предоставленный мною код, разрывы строк удаляются.Что я могу сделать с этим, учитывая, что экранирование специальных символов не подлежит обсуждению?

Ответы [ 2 ]

0 голосов
/ 27 октября 2011

Сделайте ваш HTML следующим образом:

<code><div id='myDiv'><pre>
Line 1.
Line 2
These are &ltspecial&gt; characters &amp; must be escaped !@@&gt;&lt;&gt;

И теперь .text() будет возвращать текст в точности так, как вы его указали в теге <pre>, даже вIE.

0 голосов
/ 02 августа 2011

Ваш код отлично работает для меня как в Firefox, так и в Chrome: http://jsfiddle.net/jYjRc/

Однако, если у вас есть клиент, который делает не то, что вы хотите, замените <br> s символами новой строки.

Редактировать: протестировано в IE7 и разрывы кода.Поэтому я обновил скрипку своим предложением: http://jsfiddle.net/jYjRc/1/

...