当您希望用户聚焦于文本字段的特定部分时,您可能需要将光标定位在场内一定的偏移量。要使用 jQuery 实现此目的,您可以实现 setCursorPosition 函数。
$.fn.setCursorPosition = function(pos) { if (this.setSelectionRange) { this.setSelectionRange(pos, pos); } else if (this.createTextRange) { var range = this.createTextRange(); range.collapse(true); if (pos < 0) { pos = $(this).val().length + pos; } range.moveEnd("character", pos); range.moveStart("character", pos); range.select(); } };
使用此函数,您可以通过使用所需的偏移量调用它来设置光标位置:
$("#input").focus(function() { $(this).setCursorPosition(4); });
在本例中,当#input字段获得焦点时,光标将定位在第四个字符之后(从0).
另一种方法是使用接受的答案中提供的 selectRange 函数:
$.fn.selectRange = function(start, end) { if (end === undefined) { end = start; } return this.each(function() { if ("selectionStart" in this) { this.selectionStart = start; this.selectionEnd = end; } else if (this.setSelectionRange) { this.setSelectionRange(start, end); } else if (this.createTextRange) { var range = this.createTextRange(); range.collapse(true); range.moveEnd("character", end); range.moveStart("character", start); range.select(); } }); };
使用此函数,您可以定位光标并选择文本范围:
$("#elem").selectRange(3, 5); // select a range of text $("#elem").selectRange(3); // set cursor position
这些解决方案提供了各种方法来使用 jQuery 设置光标位置和操作文本字段中的文本选择。
以上是如何使用 jQuery 设置文本区域中的光标位置?的详细内容。更多信息请关注PHP中文网其他相关文章!