我有一个文本区域,我想知道我的光标是在文本区域的最后一行还是文本区域的第一行,使用 JavaScript。
我想到了抓取第一个换行符和最后一个换行符的位置,然后抓取光标的位置。
var firstNewline = $('#myTextarea').val().indexOf('\n');
var lastNewline = $('#myTextarea').val().lastIndexOf('\n');
var cursorPosition = ?????;
if (cursorPosition < firstNewline)
// I am on first line.
else if (cursorPosition > lastNewline)
// I am on last line.
- 是否可以在文本区域内抓取光标位置?
- 对于确定我是在文本区域的第一行还是最后一行,您有更好的建议吗?
除非 JavaScript 如此简单或更简单,否则首选 jQuery 解决方案。
最佳答案
如果没有选择,您可以使用属性 .selectionStart
或 .selectionEnd
(没有选择它们是相等的)。
var cursorPosition = $('#myTextarea').prop("selectionStart");
请注意,旧版浏览器不支持此功能,尤其是 IE8-。在那里,您将不得不处理文本范围,但这完全令人沮丧。
不过,我相信某处有一个专门用于获取和设置输入元素中的选择/光标位置的库。我不记得它的名字了,但是关于这个主题的文章似乎有几十篇。
关于javascript - 你如何获得文本区域中的光标位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7745867/