jquery - Angular Datatables 对超链接内的文本而不是 href 进行排序

标签 jquery angularjs datatables

我正在尝试按字母数字方式对包含 anchor 标记的列进行排序,该 anchor 标记似乎“拦截”了排序功能。它看起来像以下几行:

<tbody>
    <tr><td><a href="/1"></a>Fox</td><tr>
    <tr><td><a href="/2"></a>Cow</td><tr>
    <tr><td><a href="/3"></a>Dog</td><tr>
</tbody>

它将分别返回 Fox,Cow,DogDog,Cow,Fox。如何根据 a 标记的内容而不是 a 标记本身的文本进行排序?

ctrl.dtOptions = DTOptionsBuilder.newOptions()
    .withPaginationType('full_numbers')
    .withOption("order", [
        [1, "asc"]
    ])
    .withOption('paging', false)
    .withOption('searching', false)
    .withOption("sDom", '<"top">rt<"bottom"flp><"clear">');

ctrl.dtColumnDefs = [
    DTColumnDefBuilder.newColumnDef(0).notSortable(),
    DTColumnDefBuilder.newColumnDef(1)
];

1:不可排序
2:字母数字(问题栏)
3-10:字母数字 - td 只有数字,因此排序正常

最佳答案

尝试对包含 HTML 的列使用 .withOption('type', 'html'),如下所示:

ctrl.dtColumnDefs = [
    DTColumnDefBuilder.newColumnDef(0).notSortable(),
    DTColumnDefBuilder.newColumnDef(1).withOption('type', 'html')
];

来自documentation :

html - Basic string processing for HTML tags

Sorting - sorted with HTML tags removed
Filtering - HTML tags removed from filtering string

参见columns.type了解更多信息。

关于jquery - Angular Datatables 对超链接内的文本而不是 href 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30989674/

相关文章:

javascript - 在 jQuery 插件中引用时使用哪个 - $(obj) vs obj

javascript - Angular : Re-use controller functions and templates in different controllers

datatables - 使用千位分隔符和字符串对数字进行排序

laravel - 我可以使用标题列搜索数据表 laravel 而不是页脚列搜索

javascript - jQuery DataTables 和 Columnfilterwidget 重置所有过滤器按钮

javascript - 当单击页面上的任意位置时,jQuery 禁用 div

javascript - jQuery 在 smarty 代码上抛出 Uncaught Error

javascript - 方法未定义

html - Angular Material FAB Speed Dial 在工具栏中有偏移

angularjs - Jackson + Spring web 在修改消息转换器后无法反序列化未引用的字符串