一键切换打开所有 table 行

Toggle opening all table rows with one click

我使用 HTML 创建了一个基本的 table。此 table 具有嵌套元素,当您单击每个分配的切换按钮时,这些元素应该会单独打开。因此,当您单击“+”图标时,它会打开一个子菜单,该菜单还有一个图标 'pitch',单击该图标将打开一个信息页面。

这有效,但是当我单击其中一个“+”图标时,它会打开子菜单的 both,同样还有 'pitch' 按钮,这显然我不想发生,我希望能够独立打开和关闭这些。

任何人都可以告诉我如何修改 Javascript/HTML 以实现此目的吗?

我附上了下面的代码...

<table>
<tr>
    <td></td>
    <td>Column 1</td>
    <td>Column 2</td>
    <td>Column 3</td>
    <td>Column 4</td>
    <td>Column 4</td>
    <td>Column 5</td>
    <td>Column 6</td>
    <td>Column 7</td>
</tr>
<tr>
    <td><a href="#" class="toggler" data-prod-cat="1">+ </a></td>
    <td>Company</td>
    <td>47</td>
    <td>123</td>
    <td>22/10</td>
    <td>***</td>
    <td></td>
    <td></td>
        <td></td>
</tr>
<tr class="cat1" style="display:none">
    <td><a href="#" class="toggler" data-prod-cat="1">pitch </a></td>
    <td>List</td>
    <td>120</td>
    <td>105</td>
    <td>22/10</td>
     <td>***</td>
    <td>23/6/2015</td>
    <td>14.95%</td>
    <td>30%</td>
</tr>
<tr class="cat1" style="display:none">
    <td>
        <p>HELLO</p>
    </td>
</tr>
<tr class="cat1" style="display:none">
    <td><a href="#" class="toggler" data-prod-cat="1">pitch </a></td>
    <td>List</td>
    <td>120</td>
    <td>105</td>
    <td>22/10</td>
     <td>***</td>
    <td>23/6/2015</td>
    <td>14.95%</td>
    <td>30%</td>
</tr>
<tr class="cat1" style="display:none">
    <td>
        <p>HELLO</p>
    </td>
</tr>

 <tr>
    <td><a href="#" class="toggler" data-prod-cat="1">+ </a></td>
    <td>Company</td>
    <td>48</td>
    <td>156</td>
    <td>22/10</td>
    <td>***</td>
    <td></td>
    <td></td>
        <td></td>
</tr>
<tr class="cat1" style="display:none">
    <td><a href="#" class="toggler" data-prod-cat="1">pitch </a></td>
    <td>List</td>
    <td>156</td>
    <td>256</td>
    <td>22/10</td>
     <td>***</td>
    <td>23/6/2015</td>
    <td>16.95%</td>
    <td>30%</td>
</tr>
<tr class="cat1" style="display:none">
    <td>
        <p>HELLO</p>
    </td>
</tr>
</table>

另外我附上了JSFiddle所以你可以明白我的意思

任何帮助将不胜感激,我已经为这个问题苦苦挣扎了一段时间。

use可以使用.closest()和.next()

$(document).ready(function(){
    $(".toggler").click(function(e){
        e.preventDefault();
        $(this).closest('tr').next('.cat'+$(this).attr('data-prod-cat')).toggle();
    });
});

DEMO HERE

更新:- 我发现这仅在每个主要 table 条目 (+) 只有一个子菜单项 (pitch) 时有效。如果超过1个,则只显示第一个子菜单项。

我应该重新表述我的问题。

我现在想显示与特定组相关的所有子菜单,然后能够单独打开它们的详细信息。

我已经更新了主要问题,所以你可以明白我的意思