これまで dataTables を愛用してきましたが、私が遭遇した問題が 1 つだけあります...
次のようなスタイルの「ステータス」画像の列があります。
<td><img class="status" alt="green" src="images/dt/greenStatus.png"></td>
列には「alt-status」の sType があり、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