繁体   English   中英

如何向表行添加折叠

[英]How to add collapse to table rows

我的页面中有一张桌子,不想一次显示整个桌子。 相反,我希望默认情况下仅显示3行。 然后,当用户单击more按钮时,我要显示所有行。

我尝试使用下面的代码来实现这一点,但是出现了渲染问题。 有没有可能将折叠添加到html中的表行?

表

<table class="table table-striped">
    <tr>
        <th>Id</th>
        <th>Name</th>
    </tr>
    <tr>
        <td>1</td>
        <td>abcde</td>
    </tr>
    <tr>
        <td>2</td>
        <td>bcdef</td>
    </tr>
    <tr>
        <td>3</td>
        <td>cdefg
            <span class="more clickable" data-toggle="collapse" data-target="#remaining-data">more
            </span>
        </td>
    </tr>
    <table class="collapse table table-stripped" id="remaining-data">
         <tr>
             <td>4</td>
             <td>defgh</td>
         </tr>
         <tr>
             <td>5</td>
             <td>efghi</td>  
         </tr>
    </table>
<table>

我已经使用了nth-child(4) ,这意味着它将获得第三个tr并添加display: none由于nextAll()之后,每个tr display: none CSS。现在,当我单击更多按钮时,它将切换具有淡入淡出效果的元素,无需写新tabletbody

 $(function(){ $("table tr:nth-child(4)").nextAll().css("display","none"); $(".clickable").on("click", function(){ $("table tr:nth-child(4)").nextAll().fadeToggle(); }) }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <table class="table table-striped"> <tr> <th>Id</th> <th>Name</th> </tr> <tr> <td>1</td> <td>abcde</td> </tr> <tr> <td>2</td> <td>bcdef</td> </tr> <tr> <td>3</td> <td>cdefg <span class="more clickable btn btn-sm pull-right btn-link">more </span> </td> </tr> <tr> <td>4</td> <td>defgh</td> </tr> <tr> <td>5</td> <td>efghi</td> </tr> <table> 

不要使用第二张表,而是使用<tbody>元素将多行包装在一起。 这些<tbody>元素可以在同一表中多次使用(请参阅link )。 使用第二个表会导致列的宽度不同。 此外,您在父表的仅一个单元格内添加了第二个表。

这是一个例子:

 document.querySelector('.more').addEventListener('click', function() { document.querySelector('.initially-hidden-rows').classList.remove('hidden'); }); 
 table td, table th { border: 1px solid black; } .more { color: blue; cursor: pointer; text-decoration: underline; } .hidden { display: none; } 
 <table> <tbody class="initial-rows"> <tr> <th>Id</th> <th>Name</th> </tr> <tr> <td>1</td> <td>abcde</td> </tr> <tr> <td>2</td> <td>bcdef</td> </tr> <tr> <td>3</td> <td>cdefg <a class="more">more</a> </td> </tr> </tbody> <tbody class="initially-hidden-rows hidden"> <tr> <td>4</td> <td>defgh</td> </tr> <tr> <td>5</td> <td>efghi</td> </tr> </tbody> <table> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM