javascript - 默认折叠 HTML 表格行

标签 javascript html

我正在使用来自 this 的轻微修改回答使标题行在 HTML 表格中可折叠。

我想修改 JS 代码段,以便在默认情况下折叠而不是展开行(在页面加载/文档准备就绪时)。我该怎么做?

基本上我想要实现的是:

$(this).find('span').text(function(_, value){return value=='-'?'+':'-'});
$(this).nextUntil('tr.header').slideToggle(100, function(){

除了在单击和切换标题行时之外,在页面加载/刷新时运行一次。

我知道我需要更改两个标签 <span>+</span>在 HTML 中,但我坚持如何在页面加载时触发此行为。


Javascript:

$(document).ready(function(){
    $('tr.header').click(function(){
        $(this).find('span').text(function(_, value){return value=='-'?'+':'-'});
        $(this).nextUntil('tr.header').slideToggle(100, function(){
        });
    });
});

HTML:

<table border="0">
  <tr  class="header">
      <th colspan="2">Header <span>-</span></th>
  </tr>
  <tr>
    <td>data</td>
    <td>data</td>
  </tr>
  <tr>
    <td>data</td>
    <td>data</td>
  </tr>
  <tr  class="header">
    <th colspan="2">Header <span>-</span></th>
  </tr>
  <tr>
    <td>date</td>
    <td>data</td>
  </tr>
  <tr>
    <td>data</td>
    <td>data</td>
  </tr>
  <tr>
    <td>data</td>
    <td>data</td>
  </tr>
</table>

CSS:

table, tr, td, th
{
    border: 1px solid black;
    border-collapse:collapse;
}
tr.header
{
    cursor:pointer;
}

JSFiddle:https://jsfiddle.net/mkb39x0u/

最佳答案

似乎您只是在 document.ready 中执行此操作:

$('tr:not(.header)').hide();

Demo

此外,我可能会使用行上的类和 CSS 来切换加号和减号字符的可见性,而不是用它来弄乱您的脚本。

关于javascript - 默认折叠 HTML 表格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55418928/

相关文章:

php 的 "setcookie"无法跨浏览器工作?

javascript - 如果元素存在于基于值的另一个数组中,则过滤数组

python - “PlayerStatsForm”对象没有属性 'username'

css - 中间对齐 div 中的三个跨度(不同高度)

PHP编码的烦恼

Javascript 自定义日志记录实用程序会干扰 chrome 检查器行为

javascript - Ajax 加载更多脚本 Bug?

javascript - clearTimeout 不工作

html - 使用 CSS 在每个字符下方添加一个点

javascript - Material design : change select action for the whole tab button,不仅用于标签