0

我正在做一个项目,我想在嵌套表结构中显示数据,如链接

http://www.aspdotnet-suresh.com/2012/05/gridview-with-in-gridview-or-nested.html

在那请检查下演示。它是在 asp.net 的网格视图中实现的。但我正在尝试在 html 中实现。我得到了解决方案,但问题是,如果我单击该行中显示下一行的任何位置,则在该表中。但我需要先点击 tr 的 td 然后只有我必须显示 tr 否则什么都没有,
我的 html 代码在下面。请任何人帮助我。

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$(function() {
  $(".toptable > tbody > tr:not(.accordion)").hide();
  $(".toptable tr:first-child").show();
  $(".toptable tr.accordion").click(function(){
  $(this).next().fadeToggle();

    });
  });
</script>
</head>
<body>
<table class="toptable" border="1">
                <tbody>                   
                    <tr class="accordion">
                        <td class="id1">TD1</td>
                        <td>TD2</td>
                        <td>TD3</td>
                    </tr>
                    <tr>
                        <td colspan="3">
                            <table class="nested" border="1" >
                                <tbody>
                                    <tr>
                                        <td>nestedTD1</td>
                                        <td>nestedTD2</td>
                                    </tr>
                                    <tr>
                                        <td>nestedTD3</td>
                                        <td>nestedTD4</td>
                                    </tr>
                                </tbody>
                            </table>          
                        </td>
                     </tr>
                     <tr class="accordion">
                        <td>TD1</td>
                        <td>TD2</td>
                        <td>TD3</td>
                    </tr>
                    <tr>
                        <td colspan="3">
                            <table class="nested" border="1" >
                                <tbody>
                                    <tr>
                                        <td>nestedTD1</td>
                                    </tr>
                                    <tr>
                                        <td>nestedTD3</td>


                    </tr>

                </tbody>
            </table>
</body>
</html>
4

1 回答 1

0

在您的选择器中使用td:first以选择第一个 td 并parent().next()切换下一个tr

试试这个

 $(".toptable tr.accordion td:first").click(function(){
                       //--^^^^^^^^---here
     $(this).parent().next().fadeToggle();
      //----^^^^^^^^^---here
});

更新

在下面的评论之后

它不适用于第二行。意味着如果我首先点击第二行 td 它必须显示其他一些表格行。

试试这个

$(".toptable tr").find('td:first').click(function(){
     $(this).parent().next().fadeToggle();
});

工作小提琴

于 2013-07-15T06:56:18.503 回答