日期:2014-05-16  浏览次数:20360 次

问题:一个table有很多tr,点击第一个tr,紧跟它下面的两行tr显示!
假如我有6行tr,第1、4行是显示的,其他都隐藏。问题:当我点击第1行tr的时候,第2、3行显示,OK,有效果,然后再点击第4行,第5、6行也显示,好!现在我要求点击第4行的时候,第5、6行显示的同时第2、3行隐藏,就是保证展开的效果只有一个,其他都收缩!小弟刚学jquery,很多不懂,看了API文档也似懂非懂,闹腾了半天也没搞出来。下面我写的代码,各位看看,能帮我实现这个功能那就太感激了!
JScript code
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script src="jquery-mobile/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
$(".show").nextUntil(".show").css("display","none");
$(".show").click(function(){
    $(this).nextUntil(".show").toggle();
    });
    
});

</script>
<style type="text/css">
.show{background:#F0F;}
</style>
</head>

<body>
<table width="500px" border="1" cellpadding="0" cellspacing="0">
 <tr class="show"><td>fsdfsd</td><td>dfsdgf</td><td>dgdfhfgf</td></tr>
 <tr><td>fsdfsd</td><td>dfsdgf</td><td>dgdfhfgf</td></tr>
 <tr><td>fsdfsd</td><td>dfsdgf</td><td>dgdfhfgf</td></tr>
 <tr class="show"><td>fsdfsd</td><td>dfsdgf</td><td>dgdfhfgf</td></tr>
 <tr><td>fsdfsd</td><td>dfsdgf</td><td>dgdfhfgf</td></tr>
 <tr><td>fsdfsd</td><td>dfsdgf</td><td>dgdfhfgf</td></tr>
</table>
</body>
</html>



------解决方案--------------------
你的思路上倒是没啥问题。做点小修正就是了

JScript code
$(function(e) {
    $("table tr:not(.show)").hide();
    $(".show").click(function(){
        $("table tr:not(.show)").hide();
        $(this).nextUntil(".show").toggle();
    });
});