Javascript 在条件语句中获取$(this)
我有js函数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"))
$(" .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();}});