首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jQuery遍历和删除空表格行

使用jQuery遍历和删除空表格行
EN

Stack Overflow用户
提问于 2011-03-31 22:59:12
回答 4查看 12.7K关注 0票数 5

我正在尝试使用jQuery遍历一个HTML表并删除空行。页面是由ASP.NET驱动的,如果有一定的权限,表中的项将被隐藏。因此,我希望创建此脚本来删除空行,并消除仍然显示的其他项之间的空格。我似乎不能得到我目前必须运行的东西,我也不确定为什么。代码如下:

代码语言:javascript
运行
复制
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $('tr').each(function () {
            $(this).find('td').each(function () {
                if ($(this).text().trim() == "") {
                    $(this).closest("tr").remove();
                };
            });
        });
    });
</script>

任何指导都将不胜感激。谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-31 23:08:00

您的代码似乎工作得很好。尝试单独运行以下命令,以了解我的意思:

代码语言:javascript
运行
复制
<html>
<head>
    <title>jQuery Tests</title>

    <script src="http://code.jquery.com/jquery-1.5.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('tr').each(function () {
                $(this).find('td').each(function () {
                    if ($(this).text().trim() == "") {
                        $(this).closest("tr").remove();
                    };
                });
            });
        });
    </script>

</head>
<body>
    <table cellpadding="0" cellspacing="0" border="1">
        <tr>
            <td></td>
            <td>testing</td>
        </tr>
        <tr>
            <td>testing</td>
            <td>testing</td>
        </tr>
        <tr>
            <td>testing</td>
            <td>   </td>
        </tr>
    </table>
</body>

页面上可能还有其他冲突的东西吗?

票数 8
EN

Stack Overflow用户

发布于 2013-04-03 18:18:54

如果我们只有TD为空,而所有其他TD都已填充,则会导致问题

我正在更改代码以使其考虑到这一点

代码语言:javascript
运行
复制
<script type="text/javascript">
        $(document).ready(function () {

            $('tr').each(function () {
                var totalTDs = $(this).find('td').length;
                var emptyTDS = 0;

                $(this).find('td').each(function () {
                    if ($(this).text().trim() == "") {
                        emptyTDS += 1;
                    };
                });

                if (emptyTDS == totalTDs) {
                    $(this).remove();
                }
            });
        });
    </script>
票数 3
EN

Stack Overflow用户

发布于 2011-03-31 23:06:05

试试这个:

代码语言:javascript
运行
复制
var td = $(this).find('td:empty');
if ( td.length > 0 ) $(this).remove();

http://api.jquery.com/empty-selector/

也就是说,您确实希望在服务器端执行此操作。它在客户端看起来很丑陋,因为在触发文档就绪事件之前,您会看到空行将事情搞得一团糟。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5501908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档