【发布时间】:2010-08-20 15:24:49
【问题描述】:
我有一个包含书名、作者、出版商和日期的书籍表。在标题栏下,很多书名都以“The”开头。如何在 jquery datatables 插件中设置排序以在排序此列时忽略第一个单词(如果它是“The”)?
谢谢。
【问题讨论】:
标签: javascript jquery sorting jquery-plugins datatables
我有一个包含书名、作者、出版商和日期的书籍表。在标题栏下,很多书名都以“The”开头。如何在 jquery datatables 插件中设置排序以在排序此列时忽略第一个单词(如果它是“The”)?
谢谢。
【问题讨论】:
标签: javascript jquery sorting jquery-plugins datatables
也许你可以使用这样的东西:
首先,您为列定义自定义排序类型,例如“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
],
【讨论】:
编写一个将文章(The、A、An)移动到字符串末尾的标题 jquery 渲染器可能会更容易。
音乐之声 -> 音乐之声,The
您可能希望对以“A”和“An”开头的标题执行相同的操作。
【讨论】: