Добавить текст в текстовую область — Jquery

Как я могу добавить текст из DIV в текстовую область?

У меня сейчас это:

    $('.oquote').click(function() { 
      $('#replyBox').slideDown('slow', function() {
      var quote = $('.container').text();   
         $('#replyBox').val($('#replyBox').val()+quote);   
        // Animation complete.
      });    
    });

person Oliver 'Oli' Jensen    schedule 14.08.2011    source источник


Ответы (2)


Просто append() текстовые узлы:

$('#replyBox').append(quote); 

http://jsfiddle.net/nQErc/

person AlienWebguy    schedule 14.08.2011
comment
Это не добавляет текст в текстовую область, но вне ее. - person Oliver 'Oli' Jensen; 14.08.2011
comment
Нет, это не так :) Посмотрите на код и проверьте элемент. Возможно, вы думаете о after() - person AlienWebguy; 14.08.2011
comment
Хотя: Он добавляет текст, но создает много пробелов. Как этого избежать? - person Oliver 'Oli' Jensen; 14.08.2011
comment
Хм. Не так хорошо с jQuery. Я пробовал это: $('#texta').append($(jQuery.trim('#reply‹?php echo $forumPost['post_id']; ?›')).text()) Но это не сработало . - person Oliver 'Oli' Jensen; 14.08.2011
comment
Каковы значения обоих узлов до того, как один из них будет добавлен к другому? - person AlienWebguy; 14.08.2011
comment
Используйте .val(), а не .append(), иначе вы столкнетесь с проблемами. - person ermenkoff; 02.08.2016
comment
@ermenkoff очень прав. У меня были случаи, когда .append() срабатывал, и другие, когда его просто игнорировали без видимой причины. Ответ Феликса Клинга с использованием .val() стабилен и должен быть предпочтительным! - person Jpsy; 02.06.2017
comment
append() работает только в том случае, если вы не изменили содержимое текстовой области до (например, набрав)!! - person Marco Torchiano; 04.06.2017
comment
Это не сработает, если текстовое поле уже отредактировано. stackoverflow .com/questions/4722914/ - person Nathan Do; 20.06.2017
comment
Мне пришлось использовать .text() вместо .val(), иначе он просто продолжал добавляться, хотя я полностью сбросил содержимое. - person brandito; 08.11.2019

Это должно сработать. Лучше, если вы передадите функцию val:

$('#replyBox').val(function(i, text) {
    return text + quote;
});

Таким образом вы избегаете поиска элемента и двойного вызова val.

person Felix Kling    schedule 14.08.2011
comment
@AlienWebguy: лучше, чем $('#replyBox').val($('#replyBox').val()+quote);, потому что он не ищет элемент и дважды вызывает val. - person Felix Kling; 14.08.2011