过滤掉动画儿童的jquery选择器

时间:2009-09-30 20:11:32

标签: jquery jquery-selectors

我正在尝试使用jQuery选择器来仅在其子元素未设置动画时才选择元素。

我试过了:

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

不起作用

事实证明只有这个有效

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

有没有办法选择没有.filter()中的函数?

2 个答案:

答案 0 :(得分:3)

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

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

filter需要字符串或函数,而不是jQuery对象。但你可以用初始选择器清除元素。

答案 1 :(得分: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");
});

filter函数是predicate(一个计算结果为true或false的表达式),用于过滤掉子项被动画化的包装集中的元素。