:input
è un'estensione jQuery mentre input
è un selettore CSS.
textarea
, button
, Ed select
elementi sarebbero abbinati dal primo, ma non la seconda.
Quest'ultimo è più veloce, quindi usalo per il tuo radio
esempio specifico . Da usare :input
quando vuoi "tutti gli elementi del modulo" anche se non sono strettamente <input>
tag. Anche in questo caso, la raccomandazione è di utilizzare prima un selettore CSS standard, quindi utilizzarlo .filter(':input')
su quel set.
Poiché: input è un'estensione jQuery e non fa parte della specifica CSS, le query che utilizzano: input non possono trarre vantaggio dall'aumento delle prestazioni fornito dal metodo querySelectorAll () DOM nativo. Per ottenere le migliori prestazioni quando si utilizza: input per selezionare gli elementi, selezionare prima gli elementi utilizzando un selettore CSS puro, quindi utilizzare .filter (": input").
Nella fonte 1.7.2, il filtro: input verifica un'espressione regolare rispetto a nodeName:
input: function( elem ) {
return (/input|select|textarea|button/i).test( elem.nodeName );
},
:input
selettore specializzato , mentre l'altro è unElement
selettore generico .