2010-10-21 100 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