Sélectionner des éléments CSS grâce à jQuery est un jeu d’enfant, et c’est ce qui d’ailleurs en a fait tous son succès.

Mais en plus des sélecteurs CSS, jQuery a introduit les sélecteurs personnalisés, ils permettent un code plus simple et une meilleure lisibilité.

Exemples de sélecteurs personnalisés jQuery :

:header,:even,:odd,:animated,:contains(text), etc...

Et le meilleur c’est que jQuery vous laisse créer et définir vos propres sélecteurs comme dans le script ci dessous.
Exemple de création de sélecteur personnalisé :

$.expr[':'].test = function(obj, index, meta, stack){
// obj - is a current DOM element
// index - the current loop index in stack
// meta - meta data about your selector
// stack - stack of all elements to loop
// Return true to include current element
// Return false to exclude current element
};

// Usage:
$('.someClasses:test').doSomething();

Maintenant créons un simple sélecteur personnalisé avec le script ci dessus. Nous voulons un sélecteur personnalisé jQuery qui renvoie les éléments html avec l’attribut rel non-vide.

$.expr[':'].withRel = function(obj){
var $this = $(obj);
return($this.attr('rel') !='');
};
// Usage:$('a:withRel').css('background-color','yellow');

Le code ci dessus créé un sélecteur personnalisé qui ne renvoie que les éléments qui ont l’attribut rel non-vide.

Vous serez peut être aussi intéressé par ceci : jQuery custom functions.

Ou encore ceci : custom jQuery selectors with parameters.