我有一个textarea,我想知道我是用JavaScript还是光标在textarea的最后一行还是textarea的第一行。
我想到先获取第一个换行符和最后一个换行符的位置,然后再获取光标的位置。
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(没有选择,它们是相等的)。
.selectionStart
.selectionEnd
var cursorPosition = $('#myTextarea').prop("selectionStart");
请注意,较旧的浏览器(尤其是IE8-)不支持此功能。在那里,您必须使用文本范围,但这是一个完全的挫败感。
我相信,尽管有一个库专门用于获取和设置输入元素中的选择/光标位置。我不记得它的名字了,但是关于这个主题的文章似乎很多。