javascript - 在 HTML 表格中显示/隐藏表格行

标签 javascript jquery html css

我使用 HTML 创建了一个基本表格。该表具有嵌套元素,当您单击每个分配的按钮时,这些元素会单独打开。因此,当您单击“+”图标时,它会打开一个子菜单,其中包含许多表格行,其中每一行都有一个图标“pitch”,点击后会打开一个信息页面。

目前发生的情况是,当我单击“+”时,它会显示子菜单项,以便一切正常

当我点击“推介”项时,我希望发生 3 件事。 然后应隐藏显示“推介”链接和其他信息的行。

然后显示信息 (HELLO) 的行应该变为可见

单击后,“-”按钮应关闭信息 (HELLO) 部分,然后再次显示“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="pitcher" 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><a href="#">-</a></td>
    <td>

        <p>HELLO</p>
    </td>
</tr>
<tr class="cat1" style="display:none">
    <td><a href="#" class="pitcher" 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><a href="#">-</a></td>
    <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="pitcher" 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><a href="#">-</a></td>
    <td>
        <p>HELLO</p>
    </td>
</tr>

同时附上这个 JSFiddle所以你会希望明白我的意思。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

这应该很容易,所以:

- 添加 .hide()去“推销”<tr>
- 添加一个类到 -轻松处理事件
- 隐藏更多信息并再次显示间距

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

$('.x').click(function(e) { // link to show pitcher has class 'x'
    e.preventDefault();
    $(this).closest('tr').prev().toggle(); // show pitcher again
    $(this).closest('tr').hide(); // hide '-' link    
});

在我添加的 fiddle 中查看 class=x-链接(再次显示投手)。

https://jsfiddle.net/w6dvyshj/13/ (只有第一个 pitch 有效,只有这个有 class=x )

关于javascript - 在 HTML 表格中显示/隐藏表格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30642477/

相关文章:

javascript - 无法使用 Puppeteer 通过选择器进行选择

javascript - SAPUi5 TypeError : I. fFunction.call 不是函数

javascript - 内部 div 的事件累积外部 div 的事件数

javascript - 从 [ajax] 函数内部获取返回值

jquery - 如何使用 jQuery for iframe 捕获点击事件?

javascript - 大量编译 HTML 代码?

javascript - Player 不会从 JavaScript 中的 CardHolder 继承

javascript - 如何根据条件对多组输入进行验证

html - 无法内联所有按钮以使其看起来像 NavBar

Android WebView对hr标签进行CSS修改