Javascript 在条件语句中获取$(this)

Javascript 在条件语句中获取$(this),javascript,jquery,this,Javascript,Jquery,This,我有js函数 $(" .prev.browse.left, .next.browse.right", spaceImageContainer).click(function () { var naviIndex = ''; var currElem = ''; if ($('.navi a', spaceImageContainer).hasClass("active"))

我有js函数

 $(" .prev.browse.left, .next.browse.right", spaceImageContainer).click(function () {
                    var naviIndex = '';
                    var currElem = '';
                    if ($('.navi a', spaceImageContainer).hasClass("active")) {
                        currElem = $(this); // need to get here .navi a with class active
                        naviIndex = $(this).index();
                    }
                   //...
                });
我需要在类
处于活动状态时写入变量
currElem
对象。当前,我在单击的内容上获取对象。

如何

currElem = $('.navi a', spaceImageContainer);
if (currElem.hasClass("active")) {
    // do stuff here. for instence, hide it.
    currElem.hide('slow');
}
编辑:

正如@demo所说:

$('.navi a', spaceImageContainer).each(function() {
    if ($(this).hasClass("active")) {
        currElem = $(this);
        naviIndex = $(this).index();
    }
});

如果只想选择类为“active”的“.navi a”元素,只需将“active”附加到选择器字符串,如下所示:

currElem = $('.navi a.active', spaceImageContainer);
这将选择其类为“活动”且其父元素的类为“navi”的所有“a”元素。如果这些是您所需要的唯一元素,那么没有理由进行循环并手动检查您自己;这只会减慢代码的速度

但是,如果确实要选择所有“.navi a”元素,然后对所有元素执行某些操作,但对类为“active”的元素执行某些特殊操作,则可以执行以下操作

$('.navi a', spaceImageContainer).each(function(){
    currElement = $(this);
    if (currElement.hasClass('active')){
        //do something special
    }
    else{
        //do something regular
    }
})
请注意,在为each方法指定的回调函数中,此变量是循环中当前的“.navi a”元素,而不是单击的元素。

如果
$(“.navi a”,spaceImageContainer)
存在超过1次?然后我需要使用例如
each
,在
中,each
$(这个)
首先会像我期望的那样工作?类似这样:$('.navi a',spaceImageContainer)。each(function(){if($(this).hasClass(“active”){currElem=$(this);naviIndex=$(this.index();}});