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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过滤掉动画儿童的jquery选择器相关的知识,希望对你有一定的参考价值。

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

我试过了:

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

它不起作用

原来,只有这个有效

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

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

答案

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

// 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的表达式),用于过滤掉子项被动画化的包装集中的元素。

另一答案

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

要么

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

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

以上是关于过滤掉动画儿童的jquery选择器的主要内容,如果未能解决你的问题,请参考以下文章

2017-6-4 JQuery中的选择器和动画 弹窗遮罩

jQuery基本操作

查找/儿童与后代选择器 jquery 性能差异

深入学习jQuery选择器系列第六篇——过滤选择器之状态选择器

JQuery基本知识选择器事件DOM操作动画

二次学习JQuery 选择器&选择集过滤&转移