Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在HTML表格中切换表格行_Javascript_Jquery_Html_Toggle - Fatal编程技术网

Javascript 在HTML表格中切换表格行

Javascript 在HTML表格中切换表格行,javascript,jquery,html,toggle,Javascript,Jquery,Html,Toggle,我已经使用HTML创建了一个基本表。此表具有嵌套元素,当您单击每个指定的切换时,这些元素应单独打开。因此,当你点击一个“+”图标时,它会打开一个子菜单,其中包含许多表格行,每一行都有一个“pitch”图标,当你点击它时,它会打开一个信息页面 现在发生的事情是,当我单击“+”时,它只显示第一个子菜单项,而不是第二个子菜单项 我想做的是,当我点击“+”图标时,它会打开里面的所有子菜单项,从这里我可以通过点击相应的“音高”图标打开每个单独的项目 有人能告诉我如何修改Javascript/HTML来实现

我已经使用HTML创建了一个基本表。此表具有嵌套元素,当您单击每个指定的切换时,这些元素应单独打开。因此,当你点击一个“+”图标时,它会打开一个子菜单,其中包含许多表格行,每一行都有一个“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>
我还附上了一个附件,这样你就可以明白我的意思了

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


非常感谢

您需要使用下一个安装方法,而不是下一个:

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

$(document).ready(function(){
$(".toggler").click(function(e){
    e.preventDefault();
    $(this).toggleClass("expand");
    var className = 'cat'+$(this).attr('data-prod-cat');
    var $current= $(this).closest('tr').next();
    while($current.hasClass(className)){
        if($(this).hasClass("expand")){
           $current.show();
           $current = $current.next().next();
        }
        else{
           $current.hide();
           $current = $current.next();
        }

    }

});
    $(".pitcher").click(function(e){
    e.preventDefault();
    var className = 'cat'+$(this).attr('data-prod-cat');
    $(this).closest('tr').next().toggle();
    });
});

JS Fiddle:

恐怕这会打开所有子菜单。当我点击“company 47”旁边的“+”时,我只想打开其中的两个子菜单,其中有一个“pitch”链接,因为它们是相关的