Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery - 2 pseudo selectors? [duplicate]

Possible Duplicate:
Combining jQuery :not and :nth-child selectors

is this possible?

Here is my code:

$("ul#filterlist li:nth-child(3n)").css("marginTop", "0");

If I wanted to apply that to the list, but only to those items VISIBLE in the list (some get hidden, I don't want them counted), how would it be achieved? I was thinking something like:

$("ul#filterlist li:nth-child(3n)").not(":hidden").css("marginTop", "0");

But it won't work. Neither will anything I try with :visible

Any ideas? Thanks.

like image 659
Phill Avatar asked Oct 26 '12 04:10

Phill


2 Answers

The method you're looking for is filter(). It will filter down a list of jQuery objects based on the given selector. Since there was no "not :hidden" selector I could found, I used the opposite :visible.

$("ul#filterlist li:nth-child(3n)").filter(":visible").css("marginTop", "0");

Hope this helps!

like image 165
vtsatskin Avatar answered Sep 22 '22 05:09

vtsatskin


If you don't want to count the hidden elements you can try using the following code.

$("ul#filterlist li:visible").filter(function(index){ 
    return (index+1)%3 == 0?true:false;
}).css("marginTop", "0");

see the example in jsfiddle here

like image 27
Tamillharasan Avatar answered Sep 23 '22 05:09

Tamillharasan