Il est maintenant nécessaire de sélectionner tous les éléments avec des images d'arrière-plan.
Ce problème est un peu délicat. Nous ne pouvons pas utiliser d'expressions de sélection pour résoudre ce problème.
Utilisez la méthode de filtrage DOM de jQuery(), les éléments peuvent être sélectionnés en fonction. sur n'importe quelle condition exprimée dans la fonction.
La méthode de filtrage dans jQuery permet de passer une chaîne (c'est-à-dire une expression de sélecteur) en tant que paramètre
Ou une fonction est transmise. définir si un élément est sélectionné.
La fonction passée sera exécutée sur chaque élément de l'ensemble de sélection actuel
Lorsque la fonction renvoie false, la fonction correspondante est supprimée de l'ensemble de sélection à chaque fois. est vrai, l'élément correspondant
n'est pas affecté
jQuery('*').filter(function(){
return !!jQuery(this).css('background');
});
Le code ci-dessus sélectionne tous les éléments avec une image d'arrière-plan.
La collection initiale est composée de tous les éléments (*). Ensuite, filter() est appelé avec une fonction en paramètre.
Cette fonction est exécutée sur chaque collection si elle en a. l'attribut background Jugement des attributs,
S'il existe, conservez-le. Sinon, supprimez cet élément de l'ensemble de résultats
Ce que vous voyez !! C'est n'importe quel type indéfini, vide, et bien sûr faux. au milieu de javascript.
Si l'appel de fonction renvoie ces valeurs, alors la fonction renvoie false, supprimant ainsi l'élément
sans attribut d'arrière-plan de la collection
En fait, !! nécessaire. Parce que jQuery convertira ces valeurs de retour en types booléens. Mais c'est toujours une bonne idée de les conserver
De cette façon, toute personne regardant votre code peut être absolument sûre de votre intention (cela facilite la lisibilité du code. ).
Dans la fonction passant filter(), vous pouvez faire référence à l'élément actuel via le mot-clé this
Incluez-le dans la fonction jQuery et il devient un objet jQuery
this //. Objet élément régulier.
jQuery(this) //Objet jQuery
Voici quelques exemples pour stimuler votre imagination
jQuery('div').filter(function(){
var width = jQuery(this).width;
return width >100 && widht <
});
//Renvoyer les éléments avec 10 ou 20 éléments enfants
jQuery('*').filter(function(){
var children. = jQuery(this).childern().length;
return children ===10 || Ce qui suit est un exemple de code : déterminez les éléments avec une couleur de fond et changez toutes leurs couleurs de fond en noir.
Copier le code