我正在尝试使用jQuery选择器来仅在其子元素未设置动画时才选择元素。
我试过了:
var articalLink = $(".navArticals").filter($(this).children("ul:not(':animated')"));
不起作用
事实证明只有这个有效
var articalLink = $(".navArticals").filter(function() {
var filtered = $(this).children().not(":animated");
return filtered
});
有没有办法选择没有.filter()中的函数?
答案 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的表达式),用于过滤掉子项被动画化的包装集中的元素。