我有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
写入变量active
对象。目前我对我点击的内容感到反对。
答案 0 :(得分:1)
怎么样?
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();
}
});
答案 1 :(得分:1)
如果您只想选择'。navi a'元素'active',只需附加'active'即可到选择器字符串,如下所示:
currElem = $('.navi a.active', spaceImageContainer);
这将选择所有'a'元素,其类'active'且其父元素具有'navi'类。如果这些是您需要的唯一元素,则没有理由通过循环并手动检查自己;这只会减慢您的代码速度。
但是,如果您确实想要选择所有'。navi a'元素,然后为所有做一些事情,但要做一些事情特殊用于具有'有效'类的那个,然后您可以执行以下操作
$('.navi a', spaceImageContainer).each(function(){
currElement = $(this);
if (currElement.hasClass('active')){
//do something special
}
else{
//do something regular
}
})
请注意,在为每个方法指定的回调函数中, this 变量是循环中当前的'.navi a'元素,而不是元素你点击了。