
在web开发中,尤其是在wordpress这类内容管理系统中,经常需要展示动态生成的数据表格。一个常见的需求是,当表格行数较多时,默认只显示前几行,其余行则隐藏,并通过一个按钮来切换显示全部或恢复默认状态。
原始的实现方式通常涉及以下问题:
为了克服上述局限性,我们可以利用jQuery库提供的强大DOM操作能力和选择器,实现一个更优雅、更具可扩展性的解决方案。jQuery能够让我们以更简洁的方式选中多个元素并批量操作它们的样式。
先决条件: 确保你的页面已经引入了jQuery库。如果尚未引入,可以在zuojiankuohaophpcnhead>标签或<body>结束标签前添加以下CDN链接:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
首先,我们需要对表格的HTML结构进行微调,主要是将两个按钮合并为一个,并添加一个统一的类或ID以便于JavaScript操作。
<table width="100%" cellspacing="10" cellpadding="10" class="tablec">
    <thead>
    <tr>
        <th><strong>Floor Plan</strong></th>
        <th><strong>Dimension</strong></th>
        <th><strong>Price</strong></th>
    </tr>
    </thead>
    <tbody>
    <?php
    // PHP代码用于动态生成表格行
    $i = 0; // 初始化行计数器
    foreach( $floor_plans as $plans ) {
        $i++;
        // 假设这里是生成表格行的逻辑,为每行添加一个class以便于选择
        // 注意:为简化示例,这里移除了原PHP代码中的复杂逻辑,仅保留结构
        ?>
        <tr class="dynamic-row">
            <td><?php echo $plans['fave_plan_title']; ?></td>
            <td><?php echo $plans['fave_plan_description']; ?></td>
            <td><button class="btn btn-primary">Get Quote</button></td>
        </tr>
    <?php } ?>
    </tbody>
</table>
<br>
<div class="wrapperr">
    <!-- 合并为一个按钮,并添加一个class用于JS操作 -->
    <button class="btn btn-primary toggle-rows-btn">显示更多 <i class="fa fa-arrow-down" style="font-size:14px"></i></button>
</div>关键点:
接下来是核心的JavaScript代码,它将处理行的初始隐藏、按钮的点击事件以及文本的切换。
<script>
    // 文档加载完成后执行
    jQuery(document).ready(function($) {
        var defaultVisibleRows = 3; // 默认显示的前3行
        var $rows = $(".tablec tbody tr.dynamic-row"); // 获取所有动态行
        var $toggleButton = $(".toggle-rows-btn"); // 获取切换按钮
        var shownAll = false; // 标记当前是否显示了所有行
        // 1. 页面加载时默认隐藏超出部分的行
        // 使用:gt()选择器选中索引大于等于defaultVisibleRows的行 (索引从0开始)
        $rows.filter(":gt(" + (defaultVisibleRows - 1) + ")").hide();
        // 如果总行数不大于默认显示行数,则隐藏按钮
        if ($rows.length <= defaultVisibleRows) {
            $toggleButton.hide();
        }
        // 2. 绑定按钮点击事件
        $toggleButton.on('click', function() {
            if (shownAll) {
                // 当前是显示所有状态,点击后应该隐藏多余行
                $rows.filter(":gt(" + (defaultVisibleRows - 1) + ")").hide();
                $(this).html('显示更多 <i class="fa fa-arrow-down" style="font-size:14px"></i>');
            } else {
                // 当前是隐藏状态,点击后应该显示所有行
                $rows.show();
                $(this).html('显示更少 <i class="fa fa-arrow-up" style="font-size:14px"></i>');
            }
            shownAll = !shownAll; // 切换状态
        });
    });
</script>代码详解:
优势:
注意事项:
通过本教程,我们学习了如何利用jQuery的强大功能,以一种高效、可扩展且用户友好的方式实现动态表格行的折叠与展开功能。这种方法不仅解决了传统硬编码方案的痛点,也为处理类似前端交互需求提供了宝贵的实践经验。在实际项目中,灵活运用jQuery选择器和事件处理机制,将大大提升开发效率和代码质量。
以上就是使用jQuery实现动态表格行的折叠与展开功能的详细内容,更多请关注php中文网其它相关文章!
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号