【问题标题】:Sorting <td> by id? [closed]按 id 对 <td> 进行排序? [关闭]
【发布时间】:2016-10-24 17:31:52
【问题描述】:

我正在尝试按 id 对表中的 td 标记进行排序。 我有下面的代码

<table>
<tr>
    <th id="dv_8">COMPANY NAME</th>
    <th id="dv_6">CONTACT 1</th>
    <th id="dv_1">CONTACT 2</th>
    <th id="dv_3">CONTACT 3</th>
    <th id="dv_2">FAX</th>
    <th id="dv_9">WILAYAT</th>
    <th id="dv_5">CUSTOMER SEGMENT</th>
    <th id="dv_10">FLCODE</th>
    <th id="dv_7">Date Added</th>
    <th id="dv_4">QNR Status</th>
</tr>

我想要排序,以便输出是

<table>
<tr>
    <th id="dv_1">CONTACT 2</th>
    <th id="dv_2">FAX</th>
    <th id="dv_3">CONTACT 3</th>
    <th id="dv_4">QNR Status</th>
    <th id="dv_5">CUSTOMER SEGMENT</th>
    <th id="dv_6">CONTACT 1</th>
    <th id="dv_7">Date Added</th>
    <th id="dv_8">COMPANY NAME</th>
    <th id="dv_9">WILAYAT</th>
    <th id="dv_10">FLCODE</th>
</tr>

我在这里错过了什么?

【问题讨论】:

  • 你的代码在哪里?你试过什么?
  • 缺少的是您迄今为止尝试过的代码。它在哪里?
  • 你需要先自己尝试。在此处显示您尝试过的一些代码。我们不会为你做这一切。
  • 请张贴您丢失的代码以及您想要对其进行排序的目的?
  • 这些是动态生成的吗?如果是这样,请发布任何现有代码。

标签: javascript html sorting html-table


【解决方案1】:

在纯 JavaScript 中你可以这样做:

Array.prototype.slice.call(document.getElementsByTagName('th')).sort(function(a, b) {
    return a.id.replace('dv_', '') - b.id.replace('dv_', '');
}).forEach(function(e) {
    e.parentNode.appendChild(e);
});

或者如果你使用 jQuery:

$('table th').get().sort(function(a, b) {
    return a.id.replace('dv_', '') - b.id.replace('dv_', '');
}).forEach(function(e) {
    e.parentNode.appendChild(e);
});

演示: http://jsfiddle.net/b4Ngj/

【讨论】:

  • 你是个好人。
【解决方案2】:

你可以使用 TinySort 插件。我用它来按 Id 排序。我的语法类似于

$('table > tr').tsort('th',{order:'desc',attr:'id'});

插件链接:http://tinysort.sjeiti.com/

【讨论】:

  • 感谢 Rahul 的尝试,我没有对任何人投反对票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
相关资源
最近更新 更多