0

我试图有一个 jQuery 选择器来选择一个元素,只有当它的子元素没有动画时。

我试过:

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

它不起作用

原来只有这个有效

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

有没有办法在没有 .filter() 内部的函数的情况下进行选择?

4

2 回答 2

3

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

或者

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

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

于 2009-09-30T20:17:56.750 回答
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 函数是一个谓词(一个计算结果为 true 或 false 的表达式),用于过滤掉包装集中的子元素动画的那些元素。

于 2009-09-30T20:20:28.823 回答