2010-10-21 95 views
3
$("#rightCol").children().children().children("div.entry").length 

我想這我怎麼可以這樣寫jQuery的片段更漂亮

$("#rightCol").children().eq(1).children("div.entry").length 

或本

$("#rightCol").children(":eq(1)").children("div.entry").length 

沒有成功。想法?

+0

你能發佈你的HTML嗎? – BrunoLM 2010-10-21 16:46:18

回答

4

根據佈局(你有與該類在要避免其他級別的DIV?),你可能會

$('#rightCol').find('div.entry').length 
+0

與通用選擇器(「*」)相比,這實際上是一種更高效的方法。 $(..)。children()比調用$(「*」)更快。 – 2010-10-21 16:50:58

+0

我選擇這個;)thx! – Thomas 2010-10-21 16:59:45

3

可以使用child-selector (>),這樣做:

$("#rightCol > * > * > div.entry").length 

不過,如果你知道孩子的類型,我會使用,超過*。如果他的水平並不重要,只需要descendant selector ()就行。

$("#rightCol div.entry").length 
+0

工程!並且很有趣... – Thomas 2010-10-21 16:57:40

3

也許這樣?

$("#rightCol *:eq(1) div.entry").length 
+0

這個也工作,謝謝! – Thomas 2010-10-21 16:54:21

3

獲得由這應該工作,如果你必須有在後代樹中的具體級別。

$("#rightCol > * > * > div.entry") 

但是,這是比較正常的。無論深度如何,它都會選擇「#rightCol」中的任何「div.entry」。

$("#rightCol div.entry") 
+0

這兩個工作,很好的解決方案,謝謝! – Thomas 2010-10-21 16:52:05