JQuery隐藏在完整的参数中

时间:2013-08-01 15:01:55

标签: jquery

$(document).ready(function (){
    $("#newrecord1 tr:odd").addClass("odd");
    $("#newrecord1 tr:odd(.odd)").find("li").hide();
    $("#newrecord1 tr:not(.odd)").hide();
    $("#newrecord1 tr:first-child").show();    
    $("#newrecord1 tr.odd").click(function (){
        if ($(this).next("tr").css('display') === 'none'){
            $(this).next("tr").show();
            $(this).next("tr").find("li").slideDown("slow");
        }
        else {
            $(this).next("tr").find("li").slideUp("slow",function(){
                $(this).next("tr").hide();
            });
        }
    })
})

在第13行,当li标签向上滑动时,代码行$(this).next("tr").hide()无效。它不会隐藏该行。

1 个答案:

答案 0 :(得分:1)

我要改写这个来解决你的问题并且不那么激烈(你创造了太多的新对象,并且尽可能地利用链接):

$(document).ready(function (){
    var trs = $('#newrecord1').find('tr');
    var oddTRs = trs.filter(':odd').addClass('odd');
    // hide all <li>
    trs.find('li').hide();
    trs.filter(':not(.odd)').hide();
    trs.filter(':first-child').show();    
    oddTRs.click(function (){
        var nextTR = $(this).next('tr');
        if (nextTR.css('display') === 'none'){
            nextTR.show().find("li").slideDown("slow");
        }
        else {
            nextTR.find("li").slideUp("slow",function(){
                nextTR.hide();
            });
        }
    });
});

试一试。