2013-07-10 53 views
1

這是一個有點爭議的問題,但我仍然很好奇爲什麼後面兩行不相等。使用jQuery選擇輸入內容的一部分

$("#boink").selectionStart = 3; 
document.getElementById("boink").selectionStart = 3; 

工作示例來自this question。由於某些原因,jQuery提取的控件沒有屬性selectionStart也不是selectionEnd

如果我仍然要應用jQuery選擇器,應該使用什麼呢?

回答

2

將返回jQuery對象,而不是原來的DOM元素控制本身。要獲得控制權,您必須採用.get方法或使用[]元素:

$("#boink")[0].selectionStart = 3; 
$("#boink").get(0).selectionStart = 3; 
4

這是因爲是一個jQuery對象,而不是DOM元素本身。爲了使這兩行等同您應該做

$("#boink")[0].selectionStart = 3; 

該數組包含所有匹配的DOM元素。既然你的ID選擇,一個元素可以匹配的最讓你隨便挑使用的第一個[0]

+0

哦,沒錯。我認爲,當我們使用#-sign去id時,不需要指定數組中的第一個元素。我的錯... –

2

你可以隨時使用

$("#boink")[0].selectionStart = 3;