#javascript #jquery
#javascript #jquery
Вопрос:
Я читаю содержимое столбца, используя
$("#myText").text($.trim($(this).closest('tr').next('tr').find('.mytext).text()));
Однако, несмотря на наличие нескольких новых строк, копируемый текст не отображает строки как новую строку, а скорее отображает их как строку в текстовом поле.
если мой текст
Line 1
Line 2
Line 3
он отображается как
Line1Line2Line3
Комментарии:
1. Да ладно, это было бы легко сделать jsfiddle. Вам действительно нужно использовать это при задании вопроса. Мы не можем точно решить вашу проблему, поскольку не видим ее и не можем протестировать другие методы. Поэтому, поскольку вы не использовали пример, все ответы будут в лучшем случае догадками, поскольку мы не можем их проверить без jsfiddle.
2. Да, скрипку js приятно иметь, но я думаю, что это четко определенный вопрос, и поэтому скрипка не совсем необходима.
3. Было бы намного проще ответить, если бы он сделал скрипку. Это заняло бы у него около двух минут, и это сделало бы мою работу в качестве ответчика намного проще, поскольку у меня был способ протестировать мое решение, используя его конкретный исходный код.
4. скрипты хороши, но не должны быть обязательными, поскольку, если бы это была просто скрипка без кода в вопросе, были бы люди, жалующиеся на то, что им пришлось перейти по внешней ссылке, чтобы ответить на вопрос, а также на то, что внешние ссылки могут изменить вопрос, делая его бесполезным и т. Д
5. @martincarlin87, публиковать скрипку не обязательно, но в этом случае было бы полезно посмотреть, какой текст он выбирает (откуда он берется, как он отформатирован) и попробовать различные возможные решения. Также указать и / или объяснить любые ошибки реализации или синтаксиса. В идеале в вопросе должна быть демонстрация скрипки и репрезентативный код: нет взаимоисключающего правила, скрипки или кода … мы действительно можем и надеемся иметь оба.
Ответ №1:
Вероятно, вы вводите текст в ячейку таблицы, содержимое которой у вас есть, например:
Line 1<br/>
Line 2<br/>
Line 3<br/>
Или в отдельных подразделениях, или каким-либо другим способом разбить его на отдельные строки.
Но textarea
не обрабатывает все теги html, он отображает только обычный текст. А для разделения строки он использует nr
whitch, что означает новую полосу и возврат каретки.
Попробуйте заменить <br />
на nr
. Но это поможет, только если ваши строки в столбце разделены на <br />
.
Ответ №2:
Ваш код выглядит так Line 1<br/>Line 2<br/>Line 3<br/>
? Если вы можете отформатировать html, попробуйте отформатировать его следующим образом:
Line 1<br/>
Line 2<br/>
Line 3<br/>
Если вы не можете отформатировать html, вам нужно использовать html
метод, а если #myText
это textarea, то вы должны использовать val
метод для установки его значения.
Если вы не можете отформатировать html, ваш код должен выглядеть так, чтобы работать:
$("#myText").val(
$.trim(
$(this).closest('tr').next('tr')
.find('.mytext').html().replace('<br/>', '/r/n')
)
);
с заменой части немного богаче, чтобы рассмотреть более общий случай.
Ответ №3:
Используйте
$("#myText").html($.trim($(this).closest('tr').next('tr').find('.mytext').text()));
Вы использовали .text, который записывает только то, что он говорит: «текст». Для сохранения форматирования необходимо использовать .html.
Ответ №4:
Похоже, проблема может быть связана с вашей функцией trim. Вы обрезаете все новые строки. Чтобы иметь возможность обрезать ее и иметь новую строку в конце, вы можете вручную поместить эту новую строку туда:
$("#myText").text($.trim($(this).closest('tr').next('tr').find('.mytext').text()) "rn");
И после рассмотрения этого в течение нескольких минут, я должен согласиться, что это было бы проще устранить с помощью jsfiddle. Не совсем ясно, что именно происходит. Мы должны сделать много предположений о том, как вы используете этот код. Например, мы предполагаем, что
Line 1
Line 2
на самом деле
Line 1<br>
Line 2<br>
что на самом деле должно работать так, как вы ожидаете.