jQuery实现在textarea指定位置插入字符或表情的方法

作者:像素猫

时间:2026-10-29

浏览:231

本文介绍如何使用jQuery在textarea的指定光标位置插入字符或表情。通过扩展jQuery.fn,利用document.selection和selectionStart/selectionEnd属性兼容不同浏览器,实现精确插入并保持滚动位置,最后提供调用示例。

文章目录

jQuery在textarea指定位置插入内容的方法

本文分享一种利用jQuery在textarea指定位置插入字符或表情的实现方案,供读者参考。

函数定义与实现逻辑

1. 函数定义

具体代码实现如下:

(function($){
$.fn.extend({
insertAtCaret: function(myValue){
var $t=$(this)[0];
if (document.selection) {
this.focus();
sel = document.selection.createRange();
sel.text = myValue;
this.focus();
            }
else
if ($t.selectionStart || $t.selectionStart == '0') {
var startPos = $t.selectionStart;
var endPos = $t.selectionEnd;
var scrollTop = $t.scrollTop;
$t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length);
this.focus();
$t.selectionStart = startPos + myValue.length;
$t.selectionEnd = startPos + myValue.length;
$t.scrollTop = scrollTop;
                }
else {
this.value += myValue;
this.focus();
                }
        }
    })  
})(jQuery);

调用示例

2. 调用方法


调用示例代码如下:

$("#textareaId").insertAtCaret("新表情");

希望本文所述对大家的jQuery程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章