【问题标题】:jQuery dataTables plugin - how to ignore word from column sortjQuery dataTables 插件 - 如何忽略列排序中的单词
【发布时间】:2010-08-20 15:24:49
【问题描述】:

我有一个包含书名、作者、出版商和日期的书籍表。在标题栏下,很多书名都以“The”开头。如何在 jquery datatables 插件中设置排序以在排序此列时忽略第一个单词(如果它是“The”)?

谢谢。

【问题讨论】:

    标签: javascript jquery sorting jquery-plugins datatables


    【解决方案1】:

    也许你可以使用这样的东西:

    首先,您为列定义自定义排序类型,例如“SongTitle”。使用数据表,您可以通过指定比较函数来定义新的排序类型:

    $.fn.dataTableExt.oSort['SongTitle-asc']  = function(a,b) {
        // Modify your title a and your title b by putting "The" in the end
        // Return 1 if a > b
        // Return -1 if a < b
        // Return 0 if a == b
    }
    

    记得定义相反的函数(这是用于升序“asc”顺序)

    $.fn.dataTableExt.oSort['SongTitle-desc']  = function(a,b) {
        return -1 * $.fn.dataTableExt.oSort['SongTitle-asc'](a,b);
    }
    

    现在告诉 DataTables 使用您的排序,您将新值传递给 aoColumns

    "aoColumns": [
        { "sType": "SongTitle" },    // Title
        { "sType": "html" }          // for the next column
    ],
    

    【讨论】:

      【解决方案2】:

      编写一个将文章(The、A、An)移动到字符串末尾的标题 jquery 渲染器可能会更容易。

      音乐之声 -> 音乐之声,The

      您可能希望对以“A”和“An”开头的标题执行相同的操作。

      【讨论】:

      • 你会怎么做?进行了一些搜索,但找不到任何示例。
      • 我不是 jquery 向导,但 JavaScript 有一个 indexOf 方法。如果第一个字符是文章,则对标题字符串的其余部分进行子字符串化,并将文章添加到新标题字符串的末尾。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-28
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      相关资源
      最近更新 更多