Vu le code XML suivant:Comment combiner un OR logique avec AND logique dans un sélecteur d'attribut jQuery?
<users>
<user state="CA" sex="m">Max</user>
<user state="AZ" sex="f">Jen</user>
<user state="OR" sex="f">Kim</user>
<user state="NV" sex="m">Bob</user>
<user state="CA" sex="m">Jon</user>
<user state="AZ" sex="m">Jim</user>
<user state="OR" sex="f">Joy</user>
<user state="NV" sex="f">Amy</user>
</users>
En utilisant jQuery, est-il possible de sélectionner les utilisateurs qui sont des hommes et sont soit de CA ou NV, mais sans utiliser la fonction de filtre? Pour être clair, je sais que
$(xml).find("user[sex='m']")
sélectionne uniquement les utilisateurs masculins, alors que
$(xml).find("user[state='CA'],[state='NV']")
sélectionne tous les utilisateurs de CA ou du NV. Mais je ne suis pas capable de combiner les deux avec un ET logique dans un seul sélecteur.
Utilisation de la fonction de filtre, cependant, les travaux suivants:
$(xml).find("user").filter(function() {
return $(this).attr('sex') == 'm' && ($(this).attr('state') == 'CA' || $(this).attr('state') == 'NV')
}).each(function() {
alert($(this).text());
});
Merci!
fonctionne comme un charme, merci! – user537264
Cela devient répétitif, mais en ce qui concerne l'utilisation des sélecteurs, c'est bien cela. Assurez-vous de cliquer sur la coche pour accepter la réponse que vous préférez. – BoltClock
Toutes les règles du sélecteur suivent la grammaire css http://www.w3.org/TR/CSS2/grammar.html – Incognito