这有点没什么问题,但我仍然很好奇为什么以下两行不相同。
$("#boink").selectionStart = 3;
document.getElementById("boink").selectionStart = 3;
工作示例来自this question。出于某种原因,jQuery获取的控件没有属性 selectionStart ,也没有 selectionEnd 。
如果我仍然要应用jQuery选择器,应该使用什么?
答案 0 :(得分:4)
那是因为$("#boink")
是一个jQuery对象,而不是DOM元素本身。为了使这两行等效,你应该做
$("#boink")[0].selectionStart = 3;
该数组包含所有匹配的DOM元素。由于您是按ID选择的,因此一个元素可以匹配最多,因此您只需使用[0]
答案 1 :(得分:2)
您始终可以使用
获取原始DOM元素$("#boink")[0].selectionStart = 3;
答案 2 :(得分:2)
$("#boink")
将返回jQuery对象而不是控件本身。要获得控件,您必须使用.get
方法或使用[]
表示法获取元素:
$("#boink")[0].selectionStart = 3;
$("#boink").get(0).selectionStart = 3;