2012-10-26 77 views
7

可能重複:
Combining jQuery :not and :nth-child selectorsjQuery - 2個僞選擇器?

這可能嗎?

這裏是我的代碼:

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

如果我想應用到列表中,而只是顯示在列表中的項目(有些人會隱藏,我不想讓他們計算在內),如何它會實現嗎?我在想這樣的:

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

但它不會工作。我也不會嘗試:可見

任何想法?謝謝。

+0

的例子這不是一個重複:沒有,因爲:沒有是沒有拆開的解決方案,它只是我認爲這將邏輯工作方式,其中沒有,謝謝 – Phill

回答

10

您正在查找的方法是filter()。它會根據給定的選擇器過濾掉一列jQuery對象。由於沒有「我不能找到:hidden」選擇器,我使用了相反的:visible

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

希望這有助於!

1

嘗試鏈接的:選擇

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

像這樣的回答顯示:

jQuery - multiple :not selector

+0

如果它是':not:hidden',它必須是':visible'。 – alex

+0

可見性也可以是:崩潰,儘管在非表格元素上使用時會隱藏 – WebChemist

+0

另一個示例$(「#divdetails span:nth-​​child(2):contains('s')」) –

2

如果你不想算隱藏要素,你可以嘗試使用下面的代碼。

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

看到的jsfiddle here