2010-11-23 54 views
2

在使用DOM時,我傾向於緩存項目,檢測項目是否存在,然後執行一些工作。像這樣:你可以在先前緩存的jQuery選擇器上使用第n個子選擇器嗎?

var $fooModules = $j('.foo-modules'); 

if ($fooModules .length > 0) { 
    //do something. 
} 

但是,我怎麼剷球使用一個jQuery選擇像第n個孩子和我的緩存選擇?

我知道我不能做到這一點:

 $j($fooModules:nth-child(3n).addClass('myClass'); 

你做什麼,要解決這個普遍存在的問題?

感謝

-R

回答

4

您可以使用.filter()篩選一組進一步下降,使用選擇或功能,像這樣:

$fooModules.filter(":nth-child(3n)").addClass('myClass'); 
+0

這是真棒。我一直使用「find」,但奇怪地忘記了非常方便的「過濾器」方法。在這個例子中,他們的區別對我來說非常清楚。謝謝尼克! – rsturim 2010-11-23 14:33:34