Il n’est pas nécessaire de fournir un élément réel en conjonction avec un filtre, tel que $ ('div: hidden')
. Il est possible de simplement passer le filtre seul, partout où une expression de sélecteur est attendue.
Quelques exemples:
// Sélectionne tous les éléments cachés $ (': hidden'); // Sélectionne tous les éléments div, puis uniquement les éléments pairs $ ('div'). Filter (': even');
Les filtres de sélecteur jQuery personnalisés :caché
et :visible
ne prenez pas en compte la propriété de visibilité CSS comme on pourrait s’y attendre. Pour déterminer si un élément est masqué ou visible, jQuery détermine si cet élément consomme de l’espace dans le document. Pour être exact, un élément est visible si son navigateur a signalé offsetWidth
ou offsetHeight
est supérieur à 0. De cette façon, un élément qui pourrait avoir un CSS afficher
valeur de bloc
contenu dans un élément avec un afficher
valeur de aucun
signalerait avec précision qu'il n'est pas visible.
Examinez attentivement le code et assurez-vous de bien comprendre pourquoi la valeur renvoyée est Il est souvent nécessaire de déterminer si l'ensemble d'éléments sélectionné contient effectivement un élément spécifique. En utilisant le Il devrait être évident que la deuxième Remarques: À partir de jQuery 1.3, le Le filtre est utilisé par d'autres fonctions jQuery internes. Par conséquent, toutes les règles qui s’y appliquent s’appliquent ici, ainsi que. Certains développeurs utilisent Vous pouvez fournir au premier paramètre de la fonction jQuery plusieurs expressions séparées par une virgule: est le Chacune de ces expressions sélectionne les éléments DOM qui sont tous ajoutés au jeu d'encapsuleurs. Nous pouvons ensuite utiliser ces éléments avec les méthodes jQuery. Gardez à l'esprit que tous les éléments sélectionnés seront placés dans le même ensemble de wrappers. Une méthode inefficace consiste à appeler la fonction jQuery trois fois, une fois pour chaque expression.. Il est possible de déterminer si votre expression a sélectionné quelque chose en vérifiant si le wrapper a une longueur. Vous pouvez le faire en utilisant la propriété array Remarques: Si cela n’est pas évident, la propriété length peut également indiquer le nombre d’éléments du groupe de wrapper. En d’autres termes, combien d’éléments ont été sélectionnés par l’expression transmise à la fonction jQuery.. Les capacités du moteur de sélecteur jQuery peuvent être étendues en créant vos propres filtres personnalisés. En théorie, tout ce que vous faites ici repose sur les sélecteurs personnalisés qui font déjà partie de jQuery. Par exemple, supposons que nous voulions sélectionner tous les éléments d'une page Web qui sont absolument positionnés. Puisque jQuery n’a pas déjà une coutume La chose la plus importante à comprendre ici est que vous n'êtes pas limité aux sélecteurs par défaut fournis par jQuery. Vous pouvez créer le vôtre. Cependant, avant de passer votre temps à créer votre propre version d’un sélecteur, vous pouvez simplement essayer la Remarques: Pour plus d'informations sur la création de vos propres sélecteurs, je suggère la lecture suivante: http://www.bennadel.com/blog/1457-How-To-Build-A-Custom-jQuery-Selector.htm jQuery fournit des filtres pour filtrer un ensemble d'encapsuleurs en fonction du contexte numérique d'un élément dans l'ensemble. Ces filtres sont: Remarques: Les filtres qui filtrent le groupe d'encapsuleurs lui-même le font en filtrant les éléments de l'ensemble à un point de départ de 0 ou un index de 0. Par exemple En utilisant Si ce n'est pas évident, permettez-moi d'expliquer davantage. La raison pour laquelle Avec une compréhension claire de la manipulation de l'ensemble lui-même, nous pouvons améliorer notre compréhension de la sélection d'éléments en utilisant des filtres qui sélectionnent des éléments ayant des relations uniques avec d'autres éléments dans le DOM réel. jQuery fournit plusieurs sélecteurs pour le faire. Certains de ces sélecteurs sont personnalisés, tandis que d'autres sont des expressions CSS bien connues pour la sélection d'éléments DOM. L'utilisation de ces filtres de sélection permet de sélectionner des éléments en fonction de leur relation dans le DOM en tant qu'éléments d'autres éléments du DOM. Pour illustrer ce concept, regardons du code. Si vous êtes surpris par le fait que Le concept à retenir est que tous les filtres ne sont pas créés de manière égale. Assurez-vous de bien comprendre lesquels filtrent en fonction des relations DOM, par exemple. Les sélecteurs jQuery utilisent un ensemble de méta-caractères (par exemple. Voici la liste complète des caractères à échapper lorsqu'ils sont utilisés comme une partie littérale d'un nom.. Il est possible d’empiler des filtres de sélecteur, par exemple. Notez dans le code comment nous avons empilé deux filtres pour accomplir cette sélection. D'autres filtres de sélecteur peuvent être empilés en plus des filtres d'attributs. Par exemple: Le concept à retenir est que les filtres de sélection peuvent être empilés et utilisés en combinaison. Remarques: Vous pouvez également imbriquer et empiler des filtres - par exemple. Les filtres de sélecteur peuvent être imbriqués. Cela vous permet de manipuler les filtres de manière très concise et puissante. Ci-dessous, je donne un exemple de la manière dont vous pouvez imbriquer des filtres pour effectuer un filtrage complexe.. Le concept à retenir est que les filtres de sélecteur peuvent être imbriqués. Remarques: Vous pouvez également imbriquer et empiler des filtres - par exemple. le Lorsque les filtres d'attribut jQuery utilisés pour sélectionner les éléments ne sont pas suffisamment robustes, essayez d'utiliser des expressions régulières. James Padolsey a écrit une belle extension aux sélecteurs de filtres qui nous permettra de créer des expressions régulières personnalisées pour le filtrage. J'ai fourni un exemple de code ici, mais assurez-vous également de consulter l'article sur http://james.padolsey.com pour tous les détails.. Les éléments enfants directs uniquement peuvent être sélectionnés à l'aide du combineur texte texte Il est possible d'utiliser le combinateur Fondamentalement, vrai
Même si le bloc de visualisation
.
Utilisation de la méthode Is () pour renvoyer une valeur booléenne
est()
méthode, nous pouvons vérifier le jeu actuel par rapport à une expression / un filtre. Le chèque reviendra vrai
si l'ensemble contient au moins un élément sélectionné par l'expression / le filtre donné. S'il ne contient pas l'élément, un faux
la valeur est retournée. Examinez le code suivant:
alerte()
retournera une valeur de false parce que notre ensemble de wrapper ne contient pas de identifiant
valeur d'attribut de i2
. le est()
La méthode est assez pratique pour déterminer si le paquet contient un élément spécifique. est()
La méthode prend en charge toutes les expressions. Auparavant, les expressions complexes telles que celles contenant des sélecteurs de hiérarchie (telles que +
, ~
, et >
) toujours retourné vrai
.est ('. classe')
déterminer si un élément a une classe spécifique. N'oubliez pas que jQuery a déjà une méthode appelée hasClass ('classe')
, qui peut être utilisé sur des éléments contenant plus d'une valeur de classe. Mais à vrai dire, hasClass ()
est juste un emballage pratique pour le est()
méthode.
Vous pouvez transmettre plusieurs expressions de sélecteur à jQuery
$ ('expression, expression, expression')
. En d'autres termes, vous n'êtes pas limité à la sélection d'éléments en utilisant une seule expression. Par exemple, dans l'exemple ci-dessous, je passe à la fonction jQuery trois expressions séparées par une virgule.
Vérification du wrapper défini .length pour déterminer la sélection
longueur
. Si la longueur
Si la propriété ne renvoie pas 0, vous savez qu'au moins un élément correspond à l'expression que vous avez transmise à la fonction jQuery. Par exemple, dans le code ci-dessous, nous vérifions sur la page un élément avec un identifiant
de "pas ici". Devine quoi? Ce n'est pas là!
Création de filtres personnalisés pour la sélection d'éléments
: positionAbsolute
filtrer, nous pouvons créer notre propre.
filtre()
méthode avec une fonction de filtrage spécifiée. Par exemple, j'aurais pu éviter d'écrire le : positionAbsolute
sélecteur en filtrant simplement la filtre()
méthode. // Retirer
Différences entre le filtrage par ordre numérique et les relations DOM
:premier
:dernier
:même
:impair
: eq (index)
: gt (index)
: lt (index)
: eq (0)
et :premier
accéder au premier élément de l'ensemble - $ ('div: eq (0)')
- qui est à un index 0. Ceci est en contraste avec le : nième enfant
filtre qui est un indexé. Signification, par exemple, : nième enfant (1)
renverra le premier élément enfant, mais en essayant d'utiliser : nième enfant (0)
ne fonctionnera pas. En utilisant : nième enfant (0)
sélectionnera toujours rien.:premier
sélectionnera le premier élément de l'ensemble en :dernier
sélectionnera le dernier élément de l'ensemble. N'oubliez pas qu'ils filtrent l'ensemble en fonction de la relation (hiérarchie numérique commençant à 0) au sein de l'ensemble, mais pas les relations des éléments dans le contexte du DOM. Compte tenu de ces connaissances, il devrait être évident que les filtres :premier
, :dernier
, et : eq (index)
retournera toujours un seul élément.:premier
Vous ne pouvez renvoyer qu'un seul élément car il ne peut y avoir qu'un seul élément dans un ensemble qui est pris en compte en premier lorsqu'il n'y a qu'un seul ensemble. Cela devrait être assez logique. Examinez le code ci-dessous pour voir ce concept en action.
ancêtre descendant
parent> enfant
prev + next
frères et soeurs
: nième enfant (sélecteur)
:premier enfant
:dernier enfant
:fils unique
:vide
: a (sélecteur)
:parent
$ ('li: nth-child (impair)'). text ()
renvoie la valeur 135135, vous n'êtes pas encore dans les filtres de relation. La déclaration, $ ('li: nième enfant (impair)')
dit verbalement serait "trouver tous éléments de la page Web qui sont des enfants, puis filtrez-les par enfants impairs. "Eh bien, il se trouve qu'il existe deux structures dans la page qui ont un groupe de frères et sœurs composé de
s. Mon argument est le suivant: le groupe d'encapsuleurs est composé d'éléments basés sur un filtre qui prend en compte la relation d'un élément avec d'autres éléments du DOM. Ces relations peuvent être trouvées à plusieurs endroits.
:fils unique
-et lesquels filtrent par la position des éléments, par exemple. : eq ()
-dans l'ensemble emballé.
Sélection d'éléments par ID lorsque la valeur contient des méta-caractères
# ~ [] =>
) que lorsqu'il est utilisé comme une partie littérale d'un nom (par exemple. id = "# foo [bar]"
) devrait être échappé. Il est possible d'échapper à des caractères en plaçant deux barres obliques inverses avant le caractère. Examinez le code ci-dessous pour voir comment l'utilisation de deux barres obliques inverses dans l'expression selection permet de sélectionner un élément avec une valeur d'attribut id de #foo [bar]
.
#
;
Et
,
.
+
*
~
'
:
"
!
^
$
[
]
(
)
=
>
|
/
Filtres de sélecteur d'empilement
un [titre = "jQuery"] [href ^ = "http: //"]
. L'exemple évident en est la sélection d'un élément ayant des attributs spécifiques avec des valeurs d'attributs spécifiques. Par exemple, le code jQuery ci-dessous ne sélectionnera que éléments de la page HTML qui:
href
attribut avec une valeur de départ de "http: //"Titre
attribut avec une valeur de "jQuery" jQuery.com jQuery.com 1 jQuery.com
// Sélectionne le dernier
$ ('p'). filter (': pas (: premier): pas (: dernier)')
Filtres de sélecteur d'imbrication
$ ('p'). filter (': pas (: premier): pas (: dernier)')
Filtre le: nth-child () Filter
: nième enfant ()
Le filtre a de nombreuses utilisations. Par exemple, supposons que vous ne souhaitiez sélectionner que tous les trois élément contenu dans un
élément. C'est possible avec le : nième enfant ()
filtre. Examinez le code suivant pour mieux comprendre comment utiliser le : nième enfant ()
filtre.
Sélection d'éléments en recherchant des valeurs d'attributs à l'aide d'expressions régulières
Différence entre la sélection d'enfants directs et tous les descendants
>
ou par le enfants ()
méthode de traversée. Tous les descendants peuvent être sélectionnés en utilisant le *
Expression CSS. Assurez-vous de bien comprendre la différence entre les deux. L'exemple ci-dessous montre les différences.
Sélection d'éléments enfants directs lorsqu'un contexte est déjà défini
>
sans contexte pour sélectionner des éléments enfants directs lorsqu'un contexte a déjà été fourni. Examiner le code ci-dessous.
'> élément'
peut être utilisé comme expression lorsqu'un contexte a déjà été déterminé.