首页 > 解决方案 > 除了 prev() 之外,我如何使用多个 jquery 选择器?

问题描述

我正在尝试合并 jquery 选择器,但我不确定如何使用:visible选择器来做到这一点。

例如,

$('.my-class:hidden').velocity('fadeIn', {
    display: 'flex',
    complete: function () {
        //
    } 
});

$('.my-class:hidden').prev().velocity('fadeIn', {});

我知道通常你可以做类似的事情,

$('.my-class', '.my-other-class').hide();

使用.prev()是让我束手无策的事情。我想尝试做这样的事情(显然不正确)。

$('.my-class:hidden', '.my-class:hidden.prev()').velocity('fadeIn', {
    display: 'flex',
    complete: function () {
        //
    } 
});

感谢您的任何建议!

标签: jqueryperformance

解决方案


add如果你喜欢,你可以使用:

$('.my-class:hidden').add($('.my-class:hidden').prev()).velocity('fadeIn', {
    display: 'flex',
    complete: function () {
        //
    } 
});

如果您想避免重复选择器,我认为您需要将结果记住到变量中:

var myHidden = $('.my-class:hidden');
myHidden.add(myHidden.prev()).velocity('fadeIn', {
    display: 'flex',
    complete: function () {
        //
    } 
});

旁注:你说:

我知道通常你可以做类似的事情,

$('.my-class', '.my-other-class').hide();

不,你不想$用这样的两个单独的字符串调用,jQuery 会期望第二个是上下文或文档。您可以将单个字符串与复合选择器一起使用:

$('.my-class, .my-other-class').hide();

推荐阅读