jQuery在光标位置将文本插入Textarea

时间:2012-11-19 20:06:56

标签: javascript jquery

我已经看到这个例子浮现在如何在文本区域的光标处插入文本:

http://jsfiddle.net/adamadam123/bTUWa/5/

以上工作正常,但是当我试图将它添加到我自己的代码(主要是jQuery)时,我发现我无法让它继续工作 - 下面是我的代码试图使用该函数的一个例子:

http://jsfiddle.net/adamadam123/bbE48/6/

有人可以帮助我让第二个jsfiddle工作。注意:确实想要传递ID,因为有许多div具有不同的ID,但都具有相同的textarea.classname。

三江源

<div id="100000000">
  <input id="insertPattern" type="button" value="insert pattern" />
  <textarea class="chatMessengerFooterTextArea">insert some text into this string</textarea>
</div>​

3 个答案:

答案 0 :(得分:3)

您可以使用next获取输入:

var txtarea = $("#"+ID).next('textarea')[0];

http://jsfiddle.net/bbE48/13/

答案 1 :(得分:0)

您修改的函数将txtarea变量重新定义为jQuery对象而不是DOM对象。您需要使用.get(0)再次获取DOM对象。

var txtarea = $("#"+ID).find('textarea.chatMessengerFooterTextArea').get(0);

答案 2 :(得分:-1)

您需要为textarea本身提供一个ID。你将:)传递给DIV,而不是textarea。

将您的textarea更改为以下内容:

<textarea id="myTextArea" class="chatMessengerFooterTextArea">insert some text into this string</textarea>

你的Jquery代码:

$('input#insertPattern').click(function() {
    alert('clicked me');
    insertEmoticonAtTextareaCursor('myTextArea', ':)');
});