2013-07-14 105 views
2

我試圖將HTML元素「追加」到textarea中。我想出如何插入HTML元素:jQuery將HTML代碼附加到textarea中

在這裏看到------->jsFiddle < --------

但我無法弄清楚如何追加。

這裏反正代碼:

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的?我的意思是,如果你繼續點擊「它會繼續插入其他對象」。

謝謝!

+0

textarea的有開始和結束標記,所以不應該.append()工作? – Popatop15

回答

3

與此

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

DEMO

5

試試你的事件處理程序之外創建一個臨時變量,並保留追加到這一點,那麼更新變量值textarea的,就像這樣:

var tempValue = ''; 

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

你要在運行的問題是,change()不會拿起同降多選下來,然而,這種解決方案在這裏:https://stackoverflow.com/a/898761/2469255可能是使用的...

希望這有助於

編輯:請參閱this更新小提琴的.selected()擴展名。

+0

+1 - 很好的解釋。沒有想到用'change()'事件(儘管是有道理的)。我仍然更喜歡'.append()'方法,但這是最好的解決方案! – sgeddes

+0

感謝您的評論,我不知道爲什麼,但我個人不喜歡混合香草JS和jQuery。我沒有一個令人信服的理由,它只是*感覺錯了。 –

2

我會用.append()createtextnode

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