:input
jest rozszerzeniem jQuery, podczas gdy input
jest selektorem CSS.
textarea
, button
a select
elementy zostaną dopasowane przez pierwszy, ale nie przez drugi.
To drugie jest szybsze, więc użyj go w swoim konkretnym radio
przykładzie. Użyj, :input
gdy 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 );
},
:input
selektor specjalistyczny , a drugi toElement
selektor ogólny .