使用jQuery将文本插入文本区域
我有一个textarea和它之外的几个变量的列表。我需要能够点击一个变量并将其放入文本区域使用jQuery将文本插入文本区域,jquery,Jquery,我有一个textarea和它之外的几个变量的列表。我需要能够点击一个变量并将其放入文本区域 <div id="var1" class="insert">Name</div> <div id="var2" class="insert">Street address</div> <textarea id="targetText">some text already here</textarea> 试试这个: $(".inse
<div id="var1" class="insert">Name</div>
<div id="var2" class="insert">Street address</div>
<textarea id="targetText">some text already here</textarea>
试试这个:
$(".insert").click(function () {
var insertText = $(this).text();
$('#targetText').append(" "+insertText);
});
演示:
感受神奇。如果您想在光标处插入变量,您需要使用selectionStart,如下所示:
$('.insert').click(function(e){
var tav = $('#targetText').val(),
strPos = $('#targetText')[0].selectionStart;
front = (tav).substring(0,strPos),
back = (tav).substring(strPos,tav.length);
$('#targetText').val(front + '{' + $(this).text() + '}' + back);
});
参见小提琴:
注意:这可能不会像IE中那样工作。完美!和往常一样,JSFIDLE链接的值为+1。
$(".insert").click(function () {
var insertText = $(this).text();
$('#targetText').append(" "+insertText);
});
$("#targetText").val($("#targetText").val() + "{" + $(this).text() + "}");
$('.insert').click(function(e){
var tav = $('#targetText').val(),
strPos = $('#targetText')[0].selectionStart;
front = (tav).substring(0,strPos),
back = (tav).substring(strPos,tav.length);
$('#targetText').val(front + '{' + $(this).text() + '}' + back);
});