2013-02-13 127 views
9

我想知道爲什麼人們似乎喜歡:input而不是input作爲jQuery選擇器?基本上,這兩條線似乎做同樣的事情:輸入與輸入在jQuery

$('input:first').focus() 
$(':input:first').focus() 

但第二個版本是更廣泛的使用,我沒有找到原因。而且,根據此基準,:input選擇器看起來較慢:http://jsperf.com/input-vs-input/2

回答

17

:input是由jQuery的,其包括<buttons><textarea>,e.t.c

input是嚴格匹配<input>一個標籤匹配僞選擇器。

這額外的備註:input是資料:

因爲:輸入一個jQuery擴展和不CSS規範的一部分,使用:input不能利用由本地DOM querySelectorAll()方法提供的性能提升查詢。要在使用:input選擇元素時實現最佳性能,請首先使用純CSS選擇器選擇元素,然後使用.filter(":input")

--from https://api.jquery.com/input-selector/

4

input只是輸入元素選擇器。 :input還選擇textarea,selectbutton(表單控件)。

這不一定是偏好問題,因爲實際上他們做的事情有些不同。

1

:input選擇所有輸入,textarea,選擇和按鈕元素,而input只是選擇帶有輸入標籤的元素。