Jquery数据表数字排序

时间:2012-02-11 10:21:03

标签: php jquery

我使用jquery数据表进行表格排序以获取以下数据。

        <table width="50%" border="0" id="pls-pitching">
    <tr>
    <td><span>1</span>
    <input name="t" type="text" value="1" /></td>
    </tr>
    <tr>
    <td><span>5</span>
    <input name="t" type="text" value="5" /></td>
    </tr>

    <tr>
    <td><span>2</span>
    <input name="t" type="text" value="2" /></td>
    </tr>
    <tr>
    <td><span>3</span>
    <input name="t" type="text" value="3" /></td>
    </tr>
    <tr>
    <td><span>10</span>
    <input name="t" type="text" value="10" /></td>
    </tr>
    </table>

这里我想将文本框值排序为1,2,3,5,10 我无法实现文本框值排序。所以我在文本框之前添加了<span>标记,如(<span>10</span>)。现在它对值进行排序。但它有点像1,10,2,3,5

但我需要将其排序为数字排序。

我使用了以下javascript命令

$('#pls-pitching').dataTable();

是否有可能实施文本框值排序?请只做那些需要的。感谢

2 个答案:

答案 0 :(得分:0)

你必须编写自己的函数来进行比较。 Here is example of how to do it

答案 1 :(得分:0)

我有同样的问题,这对我有用,

1.定义自定义排序类型(对于数值)

jQuery.fn.dataTableExt.oSort['num-html-asc'] = function(a,b) {
    var x = a.replace( /<.*?>/g, "" );
    var y = b.replace( /<.*?>/g, "" );
    x = parseInt( x );
    y = parseInt( 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 = parseInt( x );
    y = parseInt( y );
    return ((x < y || isNaN(x)) ? 1 : ((x > y || isNaN(y) ) ? -1 : 0));
};

2.初始化数据表时设置排序类型,

 $(".fooTable").dataTable({
    "aoColumns": [
         {"sType" : "num-html" }]
 });