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

标签 javascript jquery dom html-table

假设我有一个这样的表:

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

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

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

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

是否有一种快速且半途而废的方法来做到这一点?

最佳答案

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

关于javascript - 使用 jQuery 删除表中的空行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8571286/

相关文章:

javascript - 如何在javascript中获取div值并将其拆分为数组

javascript - 在 JavaScript 中访问被 __defineGetter__/__defineSetter__ 隐藏的属性

javascript - 正则表达式 - 在第二次出现的字符之间匹配字符串

javascript - react native : How to styling the TextInput?

javascript - 单击时调用自定义函数 (javascript/jquery)

javascript - 从元素数组中获取类列表

javascript - 如何从异步调用返回响应?

jQuery Submit() 在 FF/Chrome 中有效(如预期),但在 IE/Opera 中无效,有什么想法吗?

javascript - zoom.scaleExtent() 在 d3.js 中做了什么?

javascript - 有什么方法可以将 Sencha Touch 应用程序打包为 Google Chrome 打包应用程序吗?