javascript - 在 JavaScript 中重新排列表格

标签 javascript

我想使用 JavaScript 对表格行重新排序。

例如采用以下虚拟表:

<table>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
  </tr>
  <tr>
    <td>A</td>
    <td>B</td>
    <td>C</td>
    <td>D</td>
  </tr>
  <tr>
    <td>A1</td>
    <td>B1</td>
    <td>C1</td>
    <td>D1</td>
  </tr>
</table>

我想在不使用 jQuery 的情况下在 JavaScript 中执行此操作。我想将 A1、B1、C1、D1.. 行显示为第一行,然后是 1、2、3、4 行,然后是 A、B、C、D 行。

我知道在客户端会有一些等待时间,但我需要在客户端进行。对于任意数量的行,是否有一些通用的解决方案可以做到这一点?

最佳答案

如果我没理解错的话,你是在问如何把最后一行变成第一行,把剩下的往下推。应该这样做:

<table id="mytable">
...
</table>

<script type="text/javascript">
    var tbl = document.getElementById('mytable');
    var rows = tbl.getElementsByTagName('tr');
    var firstRow = rows[0];
    var lastRow = rows[rows.length];
    firstRow.parentNode.insertBefore(lastRow.parentNode.removeChild(lastRow), firstRow);
</script>

假设您的表没有嵌套表。在这一点上,这需要更聪明一些。这还假设您没有使用 TBODY 和 THEAD 节点。但我相信您可以从那里得到想法并加以改进。

关于javascript - 在 JavaScript 中重新排列表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/800715/

相关文章:

javascript - 在容器中仅显示 8 行文本

javascript - 如何使用正则表达式从字符串地址获取特定文本?

javascript - 如何通过函数的参数在 javascript 函数中触发 javascript 函数?

javascript - 可滚动的主体问题

javascript - 尝试安装 grunt 时出错

javascript - Meteor.js 项目和依赖管理

javascript - angularjs 在不同文件中为同一模块定义服务

javascript - 如何创建“显示更多”按钮并指定最初可以显示多少行文本

javascript - 外部脚本在 PaperJS v0.9.22 中不起作用

javascript - Node.js Passport 身份验证忽略 Controller 功能