/**
* 获取选中文本,控制输入框输入光标位置。假如参数为空,则返回当前被选中的文字内容;
* 假如一个参数则将光标设置在该位置;假如两个参数则将两参数之间的文字选中
* 应用举例:$("#textarea").selectionRange($("#textarea").val().length);
* @param {Number} start 设置光标的起始位置
* @param {Number} end 设置光标的结束位置
* @return {String} 假如参数个数为0则返回当前选中的文本,假如参数不为0则返回jQuery对象
jQuery.fn.selectionRange = function(start, end) { var str = ""; $(this).each(function() { if(start === undefined) { //获取当前选中文字内容,接受各种元素的选中文字 if(/input|textarea/i.test(this.tagName) && /firefox/i.test(navigator.userAgent)) { //文本框情况在Firefox下的特殊情况 str = this.value.substring(this.selectionStart, this.selectionEnd); } else if(document.selection) { //非文本框情况 str = document.selection.createRange().text; } else { str = document.getSelection().toString(); } } else { //设置文本输入控件的光标位置 if(!/input|textarea/.test(this.tagName.toLowerCase())) { //非文本输入控件,无效 return false; } //假如不传第二个参数则默认将end设为start if(end === undefined) { var end = start; } //控制光标位置 if(this.setSelectionRange) { this.setSelectionRange(start, end); this.focus(); } else { var range = this.createTextRange(); range.moveStart("character", start); range.moveEnd("character", end); range.select(); } } }); if(start === undefined) return str; else return $(this);
|
|