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

网络编程 2025-03-13 16:31www.168986.cn编程入门

```javascript

(function($) {

$.fn.extend({

insertAtCaret: function(myValue) {

var $t = $(this)[0]; // 获取textarea的原生DOM对象

this.focus(); // 让textarea获取焦点

var sel = document.selection.createRange(); // 获取当前选中的范围

this.focus(); // 再次让textarea获取焦点,确保光标位置正确

if ($t.selectionStart || $t.selectionStart == '0') { // 判断textarea是否有选中的文本

var startPos = $t.selectionStart; // 获取选中的起始位置

var endPos = $t.selectionEnd; // 获取选中的结束位置

var scrollTop = $t.scrollTop; // 保存滚动条的位置,以便恢复原来的位置

this.focus(); // 让textarea获取焦点,确保光标位置正确

$t.scrollTop = scrollTop; // 恢复滚动条的位置

} else { // 如果textarea没有选中的文本,则在尾部添加文本

this.value += myValue; // 直接在尾部添加文本

this.focus(); // 让textarea获取焦点,确保光标位置正确(虽然这里可能不需要)

}

}

}

})

})(jQuery); // 注意这里的jQuery是用来给这个函数传入jQuery对象本身的参数,便于后面的链式调用等操作。因为我们已经处于jQuery环境中了,所以这里可以省略不写jQuery。但保留写法是为了保持代码的完整性。在实际开发中,我们通常会省略这部分内容。避免重复引用jQuery对象本身。

上一篇:php生成唯一的订单函数分享 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by