我有一个使用jQuery选择的textarea,我想在其中找到光标的位置。我发现在普通的JavaScript中,您可以使用.selectionStart
执行此操作,但执行$("#maintext").selectionStart
会导致undefined
。
我该怎么做?
答案 0 :(得分:5)
selectionStart
是本机DOM属性,请尝试以下操作:
var selStart = $('#maintext').get(0).selectionStart;
发生这种情况的原因是$('#maintext')
返回jQuery包装的DOM对象数组,并且为了调用本机方法,您需要获取底层元素。
答案 1 :(得分:3)
在这种情况下,可能只会这样做:
document.getElementById("maintext").selectionStart
并没有创建新jQuery对象的开销。
答案 2 :(得分:0)
在jQuery 1.6中,您可以使用prop()
。在旧版本中,可以使用attr()
。
$("#maintext").prop("selectionStart");
但是,IE< IE中不支持selectionStart
和selectionEnd
属性。 9.我已经发布了一个跨浏览器函数,可以在Stack Overflow上的几个地方使用它(例如,here),或者你可以使用我的jQuery plug-in来处理textarea /文本输入选择。