85 votes

Quel est le but d'un premier colon dans un sélecteur jQuery?

J'ai commencé à utiliser la boîte à outils Wijmo et j'ai rencontré plusieurs exemples de sélecteurs similaires à ceux-ci dans leurs pages de documentation:

 $(":input[type='radio']").wijradio();
 

J'aurais écrit le mien comme ceci:

 $('input[type=radio]').wijradio();
 

Est-ce que ceux-ci font la même chose ou est-ce qu'il me manque quelque chose?

Notez qu'il existe deux différences ci-dessus: le premier sélecteur est précédé de deux points et comporte des guillemets pour le type d'entrée.

86voto

David Ruttka Points 8105

:input est une extension jQuery alors que input est un sélecteur CSS.

textarea, button, et select éléments pourrait être compensée par le premier, mais pas le dernier.

Ce dernier est plus rapide, afin de l'utiliser pour votre radio exemple. Utiliser :input quand vous voulez "tous les éléments de formulaire", même si elles ne sont pas strictement <input> tags. Même dans ce cas, la recommandation est d'utiliser un sélecteur CSS, utilisez .filter(':input') sur l'ensemble.

Parce que :l'entrée est une extension jQuery et ne fait pas partie de la CSS de la spécification, de requêtes à l'aide de :entrée ne peut pas profiter de la boost de performance fournis par les natifs de DOM querySelectorAll() la méthode. Pour obtenir les meilleures performances lors de l'utilisation de :entrée pour sélectionner éléments, sélectionnez d'abord les éléments à l'aide d'un pur sélecteur CSS, puis utiliser .filtre(":l'entrée").

Dans la 1.7.2 source, l' :filtre d'entrée teste une expression régulière contre les nodeName:

input: function( elem ) {
            return (/input|select|textarea|button/i).test( elem.nodeName );
},

17voto

Yaron U. Points 3278

l' $("input") sélecteur de choisir uniquement les éléments du type d'entrée

alors que l' $(":input") sélecteur va attraper toutes les entrées éléments (tels que des textarea, select, input, etc...)

pour plus d'information, visitez le jQuery documentation officielle sur l' :input le sélecteur sur:

http://api.jquery.com/input-selector/

6voto

ShankarSangoli Points 45345

L' :input sélecteur de coeur sélectionne tous form des contrôles(input, textarea, select et bouton-éléments), où, comme input sélecteur sélectionne tous les éléments par nom de balise input.

Depuis un bouton radio est une form élément et également il utilise input balise de sorte qu'ils peuvent être utilisés pour sélectionner un bouton radio. Cependant, les deux approches diffèrent de la façon dont ils trouver les éléments et donc ont chacun des avantages de performance.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X