基于jQuery dataTables类型的列过滤不起作用? Img alt过滤/排序

时间:2012-08-23 19:17:12

标签: javascript jquery jquery-datatables

到目前为止爱的数据表,但只是我遇到的一个问题...

我有一列'状态'图片样式为:

<td><img class="status" alt="green" src="images/dt/greenStatus.png"></td>

该列的sType为“alt-status”,我在列中添加了一个自定义排序,根据alt文本是红色,黄色还是绿色对它们进行排序。它的工作完美且符合预期。这是代码:

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
    "alt-status-pre": function ( a ) {
        switch(a.match(/alt="(.*?)"/)[1].toLowerCase()){
            case 'green': return 1;
            case 'yellow': return 2;
            case 'red': return 3;
            default: return 4;
        }
    },

    "alt-status-asc": function( a, b ) {
        return ((a < b) ? -1 : ((a > b) ? 1 : 0));     
    },

    "alt-status-desc": function(a,b) {
        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
    }
} );

现在,我想只根据这个alt字段过滤它们。我尝试了一些不同的东西,但没有一个起作用。我试过了:

$.fn.dataTableExt.ofnSearch['alt-status'] = function ( sData ) {
    console.log(sData);
    return sData.replace(/\n/g," ").replace( /<.*?>/g, "" );
};

只是尝试从过滤器中删除html,但这也没有用。我仍然可以搜索<img,他们都会显示。

据我所知,这种方法甚至没有被调用。任何人都有基于图像alt文本过滤的经验吗?

此问题也发布在dataTable论坛:http://goo.gl/79XXq

1 个答案:

答案 0 :(得分:1)

现在使用mData而不是ofnSearch正确的方法。请参阅:http://datatables.net/usage/columns#mData