Javascript 在负整数上筛选jQuery数据表

Javascript 在负整数上筛选jQuery数据表,javascript,jquery,datatables,Javascript,Jquery,Datatables,我可以在负片上对数据表进行排序,但我想对select.change()事件进行筛选而不是排序。基本上,我只需要它获取第4列的值,并基于选择框选择{all、positive或negative}渲染行 <table class="data-table"> <thead> <tr> <th>Text</th> <th>Text</th> <th&

我可以在负片上对数据表进行排序,但我想对select.change()事件进行筛选而不是排序。基本上,我只需要它获取第4列的值,并基于选择框选择{all、positive或negative}渲染行

<table class="data-table">
    <thead>
      <tr>
        <th>Text</th>
        <th>Text</th>
        <th>Text</th>
        <th>Value</th>
      </tr>
    </thead>
    <tbody>
      <tr>
         <td>Lorem</td>
         <td>Ipsum</td>
         <td>Dolor</td>
         <td>$1.99</td>
      </tr>
      <tr>
         <td>Lorem</td>
         <td>Ipsum</td>
         <td>Dolor</td>
         <td>$2.99</td>
      </tr>
      <tr>
         <td>Lorem</td>
         <td>Ipsum</td>
         <td>Dolor</td>
         <td>$-1.99</td>
      <tr>
         <td>Lorem</td>
         <td>Ipsum</td>
         <td>Dolor</td>
         <td>$-2.99</td>
      </tr>
      </tr>
    </tbody>
    <tfoot>
      <tr>
        <td colspan="4">
          <select class="select-filter">
            <option value="1">All</option>
            <option value="2">Positive</option>
            <option value="3">Negative</option>
          </select>
      </tr>
    </tfoot>
</table>
但“看起来”最容易让我做我想做的事情是:

$(".data-table").dataTable().columnFilter({
    aoColumns: [
      null,
      null,
      null,
      {type: "select"}
    ]
});
尽管如此,它只会创建一个包含所有值的select。我怎样才能做到这一点呢?

这里有一种方法,尽管我不认为这是“最好的方法”。该示例发布在jsbin中

请注意第一列,它将被隐藏,但它包含“2”或“3”表示正和负

  <tr>
    <th>Filter Val</th>
    <th>Text</th>
    <th>Text</th>
    <th>Text</th>
    <th>Value</th>
  </tr>
var myFilter = $('#myFilter');

$.fn.dataTableExt.afnFiltering.push(
    function( oSettings, aData, iDataIndex ) {
        if (myFilter.val() == 1)
            return true;
        else if (myFilter.val() == 2)
            return (aData[3].indexOf('-') == -1);
        else
            return (aData[3].indexOf('-') != -1);
    }
);
myFilter.change(function () { $('#myTable').dataTable().fnDraw(); });
这里有一种方法,尽管我不认为这是“最好的方法”。该示例发布在jsbin中

请注意第一列,它将被隐藏,但它包含“2”或“3”表示正和负

  <tr>
    <th>Filter Val</th>
    <th>Text</th>
    <th>Text</th>
    <th>Text</th>
    <th>Value</th>
  </tr>
var myFilter = $('#myFilter');

$.fn.dataTableExt.afnFiltering.push(
    function( oSettings, aData, iDataIndex ) {
        if (myFilter.val() == 1)
            return true;
        else if (myFilter.val() == 2)
            return (aData[3].indexOf('-') == -1);
        else
            return (aData[3].indexOf('-') != -1);
    }
);
myFilter.change(function () { $('#myTable').dataTable().fnDraw(); });
这里有一个方法:

“myFilter”是选择项的ID。AFNFilter允许您将自己的自定义筛选器添加到数据表中。请注意,下面的过滤函数很简单-值列中没有破折号的任何内容都将被视为正(包括空格)。任何带破折号的都是负数

  <tr>
    <th>Filter Val</th>
    <th>Text</th>
    <th>Text</th>
    <th>Text</th>
    <th>Value</th>
  </tr>
var myFilter = $('#myFilter');

$.fn.dataTableExt.afnFiltering.push(
    function( oSettings, aData, iDataIndex ) {
        if (myFilter.val() == 1)
            return true;
        else if (myFilter.val() == 2)
            return (aData[3].indexOf('-') == -1);
        else
            return (aData[3].indexOf('-') != -1);
    }
);
myFilter.change(function () { $('#myTable').dataTable().fnDraw(); });
您可能还对此感兴趣:

这里有一种方法:

“myFilter”是选择项的ID。AFNFilter允许您将自己的自定义筛选器添加到数据表中。请注意,下面的过滤函数很简单-值列中没有破折号的任何内容都将被视为正(包括空格)。任何带破折号的都是负数

  <tr>
    <th>Filter Val</th>
    <th>Text</th>
    <th>Text</th>
    <th>Text</th>
    <th>Value</th>
  </tr>
var myFilter = $('#myFilter');

$.fn.dataTableExt.afnFiltering.push(
    function( oSettings, aData, iDataIndex ) {
        if (myFilter.val() == 1)
            return true;
        else if (myFilter.val() == 2)
            return (aData[3].indexOf('-') == -1);
        else
            return (aData[3].indexOf('-') != -1);
    }
);
myFilter.change(function () { $('#myTable').dataTable().fnDraw(); });
您可能还对以下内容感兴趣: