0

到目前为止,我很喜欢 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 ,它们都显示了。

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

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

4

1 回答 1

1

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

于 2012-08-24T15:00:34.060 回答