2013-02-27 26 views
10

Czy istnieje dobry sposób na filtrowanie wybranych elementów do kilku klas? Wiem, że mogłem je wykonywać po jednym na raz, ale wydawało się, że to tylko coś, na co pozwoliłaby jQuery.jQuery: filtr z wieloma klasami

Są one obsługiwane za pomocą ajax i nie mam dostępu do definicji rzeczywistego html.

$('.val>td').each(function() { 
    $(this).filter('.price,.quantity,.remove').children().children().addClass('hidetaxfields'); 
}); 
+0

Czy nie byłoby łatwiej dodać zajęcia bezpośrednio do swoich pól podatkowych, aby można je było łatwo wybrać do ukrycia? –

+0

Jestem zdezorientowany, czy pytasz, czy możesz użyć '.price, .quantity, .remove'' w' .filter() '? Ponieważ '.filter()' przyjmuje selektor jQuery, możesz użyć przecinka, aby oddzielić wiele kryteriów wyboru tak jak je masz. To jest "Selektor wielokrotny": http://api.jquery.com/multiple-selector/ – ajp15243

+0

Tak, to jest scenariusz, który próbowałem. To po prostu nie działało. –

Odpowiedz

19

co prosicie isnt jasne z byłego MPle dajesz ...

To będzie produkować podzbiór elementów dopasowanych przez przeczuciom selektora, które mają klasę one LUB two:

$(selector).filter('.one, .two'); 

To będzie produkować podzbiór elementów dopasowanych przez inital selektor, które mają zarówno zajęcia one I two:

$(selector).filter('.one.two'); 
+0

Pierwszym jest to, do czego dążyłem. Zastanawiam się, dlaczego to nie zadziałało? –

+0

Brakujące miejsce? –

+0

Biała przestrzeń jest tam nieistotna. –

1

Stosując metodę .is() powinno działać:

$('.val>td').each(function() { 
    var $this = $(this); 
    if($this.is('.price, .quantity, .remove')){ 
     $this.children().children().addClass('hidetaxfields'); 
    } 
}); 

Ale to nawet lepiej:

$('.val>td.price, .val>td.quantity, .val>td.remove').each(function() { 
    $(this).children().children().addClass('hidetaxfields'); 
}); 

lub to:

var $tds = $('.val>td').filter('.price, .quantity, .remove'); 
$tds.each(function() { 
    $(this).children().children().addClass('hidetaxfields'); 
}); 
2

z filtrem można napisać funkcję filtra, który może zrobić to tak jak (demo):

+0

v pod ręką, dzięki! – ptim

Powiązane problemy