:inputjest rozszerzeniem jQuery, podczas gdy inputjest selektorem CSS.
textarea, buttona selectelementy zostaną dopasowane przez pierwszy, ale nie przez drugi.
To drugie jest szybsze, więc użyj go w swoim konkretnym radioprzykładzie. Użyj, :inputgdy chcesz mieć „wszystkie elementy formularza”, nawet jeśli nie są one ściśle <input>tagami. Nawet w takim przypadku zaleca się, aby najpierw użyć standardowego selektora CSS, a następnie użyć .filter(':input')tego zestawu.
Ponieważ: input jest rozszerzeniem jQuery i nie jest częścią specyfikacji CSS, zapytania używające: input nie mogą korzystać ze zwiększenia wydajności zapewnianego przez natywną metodę DOM querySelectorAll (). Aby uzyskać najlepszą wydajność, używając: input do wybierania elementów, najpierw wybierz elementy za pomocą czystego selektora CSS, a następnie użyj .filter (": input").
W źródle 1.7.2 filtr: input testuje wyrażenie regularne w odniesieniu do nodeName:
input: function( elem ) {
return (/input|select|textarea|button/i).test( elem.nodeName );
},
:inputselektor specjalistyczny , a drugi toElementselektor ogólny .