使用jQuery删除表中的空行和列

时间:2011-12-20 05:44:28

标签: javascript jquery dom html-table

假设我有一个这样的表:

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

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

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

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

有没有一种快速而中途的方式来做到这一点?

1 个答案:

答案 0 :(得分:9)

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();
  }
}