按表标题展开/折叠HTML表

时间:2015-04-08 12:18:48

标签: javascript php html mysql

我有一系列表格,我将根据一些PHP代码和MySQL查询进行显示。但是,想知道是否有办法通过单击表头来使用下表(使用JavaScript或其他东西)来扩展和折叠表数据。

我的表格编码如......

<table>
    <tr>
        <th>Always Visible</th>
    </tr>
    <tr>
        <td>Hidden 01</td>
        <td>Hidden 02</td>
        <td>Hidden 03</td>
    </tr>
    <tr>
        <td>Hidden 01</td>
        <td>Hidden 02</td>
        <td>Hidden 03</td>
    </tr>
</table>

看起来像......(涉及我的CSS)......

enter image description here

这一切都可能吗?

-Nick

2 个答案:

答案 0 :(得分:3)

这样的东西?

演示@ Fiddle

如果你想在默认情况下折叠表,那么在CSS中进行,如下所示。

tbody { display: none; }

<table>
    <thead>
    <tr>
        <th>Always Visible</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td>Hidden 01</td>
        <td>Hidden 02</td>
        <td>Hidden 03</td>
    </tr>
    <tr>
        <td>Hidden 01</td>
        <td>Hidden 02</td>
        <td>Hidden 03</td>
    </tr>
    </tbody>
</table>

$("thead").find("th").on("click", function() {
    $(this).closest("table").find("tbody").toggle(); //you can set delay within toggle as well, like .toggle(500);
});

答案 1 :(得分:1)

我创建了一个示例代码

$(function () {

var tableBody = $("#tableBody"),
    tableHead = $("#tableHead");
    
    tableHead.on("click", function () {
        tableBody.slideToggle("slow");
    });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table>
    <thead id="tableHead">
        <tr>
            <th>Always Visible</th>
        </tr>
    </thead>
    <tbody id = "tableBody">
        <tr>
            <td>Hidden 01</td>
            <td>Hidden 02</td>
            <td>Hidden 03</td>
        </tr>
        <tr>
            <td>Hidden 01</td>
            <td>Hidden 02</td>
            <td>Hidden 03</td>
        </tr>
    </tbody>
</table>

我希望这是你想要实现的目标。