稍微复杂的jQuery Travsersing问题

时间:2009-08-30 02:30:13

标签: jquery dom

我有一个显示搜索结果的页面,其中包含以下DOM:

div.mcoupdisplay
    div.mcoup //search result 1
            div.lcoup
        div.rcoup
            div.rcoupmeta
                a.rcoupedit
                a.rcoupdelete
        div.updcoup
        div.delcoup
    div.mcoup //search result 2
        div.lcoup
        div.rcoup
            div.rcoupmeta
                a.rcoupedit
                a.rcoupdelete
        div.updcoup
        div.delcoup

我目前隐藏所有div.updcoup和div.delcoup并使用以下jQuery添加slideToggle功能:

    $('div.delcoup').hide();
    $('a.rcoupdelete').click(function() {
        $(this).closest('div.mcoup').find('div.delcoup').slideToggle(400);
        $('div.updcoup').slideUp(400);
        $('div.crecoup').slideUp(400);
        return false;
    });

    $('div.updcoup').hide();
    $('a.rcoupedit').click(function() {
        $(this).closest('div.mcoup').find('div.updcoup').slideToggle(400);
        $('div.delcoup').slideUp(400);
        $('div.crecoup').slideUp(400);
        return false;
    });

假设在搜索结果1中切换div.updcoup,然后在搜索结果2中切换div.updcoup。当我在搜索结果2中切换div.updcoup时,如何滑动可见的div.updcoup搜索结果1? / p>

3 个答案:

答案 0 :(得分:0)

你的问题对我来说不是很清楚,但只读到这个:

  

我的问题是什么链最适合目标所有可见的div.updcoup和div.delcoup

你想要这个:

$('div.updcoup:visible, div.delcoup:visible').slideUp(400);

答案 1 :(得分:0)

您要从套装中删除某件商品吗?如果是这样,请执行以下操作:

var thisDelcoup = $(this).closest('div.mcoup').find('div.delcoup').slideToggle(400);
$('div.delcoup').not(thisDelcoup).slideUp(400);
$('div.updcoup').slideUp(400);
$('div.crecoup').slideUp(400);

答案 2 :(得分:0)

我受到了斯特雷格的评论的启发。他不在那里,最后的工作答案如下:

    $('div.delcoup').hide();
    $('a.rcoupdelete').click(function() {
        var thisDelcoup = $(this).closest('div.mcoup').find('div.delcoup');
        $(this).closest('div.mcoup').find('div.delcoup').slideToggle(400);
        $('div.delcoup').not(thisDelcoup).slideUp(400);
        $('div.updcoup').slideUp(400);
        $('div.crecoup').slideUp(400);
        return false;
    });

    $('div.updcoup').hide();
    $('a.rcoupedit').click(function() {
        var thisUpdcoup = $(this).closest('div.mcoup').find('div.updcoup');
        $(this).closest('div.mcoup').find('div.updcoup').slideToggle(400);
        $('div.delcoup').slideUp(400);
        $('div.updcoup').not(thisUpdcoup).slideUp(400);
        $('div.crecoup').slideUp(400);
        return false;
    });

感谢您的帮助Strager!