2009-09-30 39 views
0

我想有一个jQuery选择器来选择一个元素,只有当它的孩子没有动画。jquery selecter,筛选出动画的孩子

我想:

var articalLink = $(".navArticals").filter($(this).children("ul:not(':animated')")); 

它不工作

原来,只有这个工作

var articalLink = $(".navArticals").filter(function() { 
    var filtered = $(this).children().not(":animated"); 
    return filtered 
}); 

有什么办法没有内部.filter功能选择( )?

回答

3

在这种情况下,我不这么认为,因为您需要根据包装集中每个元素的子元素应用过滤器。可以稍微缩短过滤器虽然对

// you don't necessarily need to assign to a variable, 
// just depends what you want to do with it 
var articalLink = $(".navArticals").filter(function() { 
    return $(this).children().not(":animated"); 
}); 

过滤器的功能是过滤掉包裹集,其儿童动画的元素predicate(计算结果为真或假的表达式)。

3

$(".navArticals").filter(":not(:has(:animated))")

$(".navArticals:not(:has(:animated))")

filter需要一个字符串或一功能,而不是一个jQuery对象。但是你可以用你的初始选择器去除元素。

+0

仅供参考我试过了,他们没有选择我想要的东西。他们不过滤,如果它的孩子是动画,反正谢谢。 – adardesign 2009-09-30 20:29:20

+0

它确实应该。 – geowa4 2009-09-30 20:34:57