jQuery将HTML代码附加到textarea中

时间:2013-07-14 02:19:15

标签: jquery select append

我正在尝试将HTML元素“附加”到textarea中。我想出了如何插入HTML元素:

见这里-------> jsFiddle< --------

但我无法弄清楚如何APPEND。

以下是代码:

HTML

<select id='sel' size='1'>
  <option>&#60;&#62;&#60;&#47;&#62;</option>
  <option>&#60;p&#62;&#60;&#47;p&#62;</option>
  <option>&#60;div&#62;&#60;&#47;p&#62;</option>
  <option>&#60;a&#62;&#60;&#47;a&#62;</option>
  </select><br/><br/>
<textarea id='txtarea'></textarea>

的jQuery

$(document).ready(function() {
  $('select').change(function() {
    $('textarea').html($(this).val());        
  });
});

有没有人知道如何将HTML元素文本附加到textarea?我的意思是,如果你一直点击“&lt; p&gt;&lt; / p&gt;”它会继续插入另一个项目。

谢谢!

3 个答案:

答案 0 :(得分:5)

在事件处理程序之外创建一个临时变量并继续追加该变量,然后使用变量值更新textarea,如下所示:

var tempValue = '';

http://jsfiddle.net/KyleMuir/vWFQQ/1/

您将遇到的问题是change()不会为同一下拉列表选择多个选项,但是,此处的解决方案:https://stackoverflow.com/a/898761/2469255可能有用。

希望这有帮助

编辑:查看.selected()扩展程序的this更新小提琴。

答案 1 :(得分:3)

试试这个

$(document).ready(function() {
    $('select').change(function() {
        var currentVal = $('textarea').val();
        $('textarea').val(currentVal + $(this).val());    
    });
});

DEMO

答案 2 :(得分:3)

我会将.append()createtextnode

一起使用
$('select').change(function() {
    $('#txtarea').append(document.createTextNode($(this).val()));   
})