我使用了jQuery数据表插件对表格数据进行排序。如果列包含简单文本,则排序效果很好。如果我将任何锚标记条件放在文本上,则列排序不会正确排序。
我以以下方式显示了这些值:
<td><?php if ($allAptArr[$d][27]['staffinactive'] == 1) { ?>
<?=ucwords(stripslashes($allAptArr[$d][5]['staff_name']));?>
<?php } else { ?>
<a href='#' onClick="redirectToStaff('<?=$allAptArr[$d][10]['staff_id']?>');">
<?=ucwords(stripslashes($allAptArr[$d][5]['staff_name']));?>
</a>
<?php } ?> </td>
使用此代码,列排序将失败。
发布于 2012-11-21 00:21:00
在ready函数之前添加以下内容:
//sets up numeric sorting of links
jQuery.fn.dataTableExt.oSort['num-html-asc'] = function(a,b) {
var x = a.replace( /<.*?>/g, "" );
var y = b.replace( /<.*?>/g, "" );
x = parseFloat( x );
y = parseFloat( y );
return ((x < y || isNaN(y) ) ? -1 : ((x > y || isNaN(x)) ? 1 : 0));
};
jQuery.fn.dataTableExt.oSort['num-html-desc'] = function(a,b) {
var x = a.replace( /<.*?>/g, "" );
var y = b.replace( /<.*?>/g, "" );
x = parseFloat( x );
y = parseFloat( y );
return ((x < y || isNaN(x)) ? 1 : ((x > y || isNaN(y) ) ? -1 : 0));
};
在就绪的函数中:
"aoColumns": [
{ "sType": "num-html" },
null,
etc. etc.
]
这就是我对锚点的工作方式,整数按照他们应该得到的顺序进行排序。
发布于 2012-01-09 08:38:24
将列类型设置为'html':
$('#example').dataTable( {
"aoColumns": [
{ "sType": "html" },
null,
null,
null,
null
]
} );
这将在排序前剥离HTML标记。
请参阅documentation for sType parameter
发布于 2010-06-30 17:31:29
当涉及到链接时,我只是遇到了使用数据表进行排序的问题-我有一个列,在某些单元格中有链接,而在其他单元格中没有链接。它似乎在排序,但它先排序所有链接,然后排序所有非链接,而不是将链接和非链接都排序在一起。问题最终被证明是标记中的间距。当我去掉任何a标签周围的所有不必要的空格时,我的列可以完美地排序。
https://stackoverflow.com/questions/1899500
复制相似问题