javascript - 使用 jquery 重新排序 HTML 表中的列

标签 javascript jquery html-table

this fiddle中有一个html表格创建为

<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <th>Sl.No</th>
        <th>Name</th>
        <th>Dec 2013</th>
        <th>Feb 2014</th>
        <th>Jan 2014</th>
        <th>Mar 2014</th>
        <th>Nov 2013</th>
        <th>Total</th>
    </tr>
    <tr>
        <td>1</td>
        <td>foo</td>
        <td>4</td>
        <td>7</td>
        <td>3</td>
        <td>5</td>
        <td>2</td>
        <td>21</td>
    </tr>
    <tr>
        <td>2</td>
        <td>bar</td>
        <td>6</td>
        <td>1</td>
        <td>5</td>
        <td>8</td>
        <td>3</td>
        <td>23</td>
    </tr>
</table>

如何使用 jquery 对列重新排序,以便新表中的列顺序变为 Sl.No, Name, Nov 2013, Dec 2013, Jan 2014, Feb 2014, Mar 2014, Total 此外,月份列由服务器根据日期选择动态生成(FromTo 日期)

最佳答案

var arr = $('th').sort(function(a, b) {
   return new Date(a.innerHTML) > new Date(b.innerHTML);
}).map(function() { return this.cellIndex }).get();

$('tr').each(function() {
    $(this.cells).sort(function(a, b) {
        a = $.inArray(a.cellIndex, arr);
        b = $.inArray(b.cellIndex, arr);
        return a > b;
    }).prependTo(this);
});

http://jsfiddle.net/ZR5W7/

关于javascript - 使用 jquery 重新排序 HTML 表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22853494/

相关文章:

javascript - 将正确的标签与 Google map 中的标记相关联

javascript - 使用 Jquery 和 Ajax/Json 上传视频

javascript - 使用 jQuery 追加元素与 CSS 转换延迟同步

javascript - 在 JavaScript 中将数组元素打印到各自的列中

javascript - 如何删除 HTML 表格中的所有 <tr> 元素(第一个元素除外)

javascript - Flux 最佳实践 : Stores dispatching actions, Web API Utils 中的 AJAX 调用?

javascript - 隐藏并显示 iframe 元素后,iframe 滚动条不会在 chrome 中显示

javascript - 传递值并将其显示为对象 - jquery

javascript - 如何获取调用我的函数的元素的 ID、类或 HTML 标记?

c# - 从字符串 C# 构建表