【问题标题】:Remove empty rows and columns in a table with jQuery使用 jQuery 删除表中的空行和列
【发布时间】:2012-01-24 04:06:06
【问题描述】:

假设我有这样一张桌子:

+-----------+
| | | | | | |
|-+-+-+-+-+-|
| |a| |b| | |
|-+-+-+-+-+-|
| | | | | | |
|-+-+-+-+-+-|
| |c| |d| | |
|-+-+-+-+-+-|
| | | | | | |
+-----------+

我想删除所有空的外部行和列。上面的例子将简化为:

+-----+
|a| |b|
|-+-+-|
| | | |
|-+-+-|
|c| |d|
+-----+

我有一些工作代码,但它不是很优雅,更重要的是,速度非常慢。我需要一个可以快速删除多达 30 个无关行和列的解决方案。

有没有一种快速且体面的方法来做到这一点?

【问题讨论】:

  • 您也希望空行消失,那么为什么在所需的结果图中有一个空行..
  • @3nigma 我只想删除 outside 空行和空列。内容之间需要空行和空列。

标签: javascript jquery dom html-table


【解决方案1】:
var $theTable = $("table#myTable"),
    lookAt    = ["tr:first-child", "tr:last-child", 
                 "td:first-child", "td:last-child"];

for (var i=0; i<lookAt.length; i++) {
  while ( $.trim($(lookAt[i], $theTable).text()) == "" ) {
    $(lookAt[i], $theTable).remove();
  }
}

编辑:您可以将其用作内部循环,也许它会快一点:

for (var i=0; i<lookAt.length; i++) {
  while ( var $x = $(lookAt[i], $theTable), $.trim($x.text()) == "" ) {
    $x.remove();
  }
}

【讨论】:

    猜你喜欢
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多