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

时间:2012-11-08 17:03:49

标签: jquery

基本上我正在尝试进行查找然后运行效果,但我想排除所有者元素。这就是我现在所拥有的:

$('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();
});

不太有效。有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

试试这个:

$('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();
});