jQuery: filtre avec plusieurs classes
Est-il une bonne façon de réaliser le filtrage des éléments sélectionnés vers le bas pour un peu de classes? Je sais que je pourrais le faire un à la fois, mais cela semblait être quelque chose de jQuery.
Ces sont servis avec ajax, et je n'ai pas accès pour définir le code html réel.
$('.val>td').each(function () {
$(this).filter('.price,.quantity,.remove').children().children().addClass('hidetaxfields');
});
Ne serait-il pas plus facile d'ajouter des classes directement à votre champs d'imposition, de sorte que vous pouvez les sélectionner facilement pour se cacher?
Je suis confus, demandez-vous si vous pouvez utiliser
Oui, c'est le scénario que j'essayais. Il n'a tout simplement pas de travail.
J'ai ajouté quelques explications à ma question. Désolé.
Je vois. Il sera difficile de fournir une meilleure alternative que (ou fixer) celui que vous avez déjà si vous ne fournissez pas le HTML qui vous reçoivent.
Je suis confus, demandez-vous si vous pouvez utiliser
'.price,.quantity,.remove'
dans .filter()
? Depuis .filter()
prend un sélecteur jQuery, vous pouvez utiliser une virgule pour séparer les différents critères de sélection juste que vous l'avez. C'est le "Multiple Sélecteur": api.jquery.com/multiple-selectorOui, c'est le scénario que j'essayais. Il n'a tout simplement pas de travail.
J'ai ajouté quelques explications à ma question. Désolé.
Je vois. Il sera difficile de fournir une meilleure alternative que (ou fixer) celui que vous avez déjà si vous ne fournissez pas le HTML qui vous reçoivent.
OriginalL'auteur Adam Cook | 2013-02-27
Vous devez vous connecter pour publier un commentaire.
Ce que vous demandez n'est pas clair à partir de l'exemple que vous donnez...
Cela produira un sous-ensemble d'éléments appariés par le premier sélecteur qui ont la classe
one
OUtwo
:Cela produira un sous-ensemble d'éléments appariés par le premier sélecteur qui ont à la FOIS les classes
one
ETtwo
:L'espace manquant?
L'espace blanc est hors de propos.
L'espace blanc est hors de propos.
Vous savez que le youd probablement obtenir de meilleures performances si vous déplacez la plupart de ce que votre sélection initiale au lieu de le faire dans la boucle:
$('.val > td').filter('.price,.quantity,.remove').each(function(){})
ou même obtenir tous dans le sélecteur de lui-même:$('.val > td.price, .val > td.quantity, .val > td.remove').each(function(){})
OriginalL'auteur prodigitalson
Avec le filtre, vous pouvez écrire une fonction de filtre qui peut faire cela comme (démo):
OriginalL'auteur Jason Sperske
À l'aide de la
.is()
méthode de travail:Mais c'est encore mieux:
ou ceci:
OriginalL'auteur Bryan Downing