jQuery find()-排除$(此)元素

jQuery find()-排除$(此)元素,jquery,Jquery,基本上,我试图进行查找,然后运行一个效果,但我想排除owner元素。这就是我目前的情况: $('li.main').click(function(){ $(this).parents('.content').find('li.main').not(this).removeClass('active'); $(this).parents('.content').find('li.subs').not(this).slideUp(); $(this).parent().to

基本上,我试图进行查找,然后运行一个效果,但我想排除owner元素。这就是我目前的情况:

$('li.main').click(function(){
    $(this).parents('.content').find('li.main').not(this).removeClass('active');
    $(this).parents('.content').find('li.subs').not(this).slideUp();

    $(this).parent().toggleClass('active');
    $(this).parent().next('li.subs').slideToggle();
});
不太管用。有人知道怎么做吗?

试试这个:

$('li.main').click(function(){
    var item = $(this), allItems = item.parents('.content').find('li.main');
    if(!item.hasClass('active')){
        allItems = allItems.not(item);
        item.parent().addClass('active');
        item.parent().next('li.subs').slideDown();
    }
    allItems.removeClass('active');
    allItems.slideUp();
});

哪一部分不起作用-查找还是操纵?也就是说,您能否验证“查找”是否正在选择您想要的元素?请定义“不太有效”。你能用小提琴复制它并与我们分享吗?JSFIDLE或与之配套的HTML怎么样?基本上,当我点击一个项目时,它会执行效果(即将类设置为“活动”,并执行幻灯片动画)。现在,当我再次单击同一项时,它会做完全相同的事情-它应该做的是删除类“active”并向上滑动。@GSTAR您应该使用注释中的解释更新您的问题,同样,问题中的元素的基本HTML结构可能会有帮助。实际上不是:不接受DOM元素,也可以考虑更新你的答案,以免降低我的坏。用可能的解决方案更新答案。