0

01) 我有一个 JSON URL,我通过外部.js文件将数据动态加载到 HTML 表中。

02)我有一个名称过滤器(第一列)。(它工作正常)

03)我对每一行都有一个乘法函数。(它工作正常)

04)我有一个 3d 列的 min-max 函数。(虽然它曾经工作过,但它不起作用)。

链接在这里:LINK

代码显示在这里:

function minmax() {

    filters();
    $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) {
        return parseFloat(data[2]) >= parseFloat($('#counter-low').val() || data[2]) &&
            parseFloat(data[2]) <= parseFloat($('#counter-high').val() || data[2]);
    });

    var table = $('table').DataTable();
    $('#counter-low, #counter-high').on('keyup', table.draw);
}

我也在其中调用过滤器函数。我无法弄清楚为什么它不起作用。

UPD:我更改了标题中调用的顺序,现在效果更好。但仍然不能 100% 工作。

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
  <script src="js/jquery.min.js"></script>
  <script src="js/jquery.multiselect.js"></script>
  <script type="text/javascript" language="javascript" src="js/jquery.dataTables.min.js"></script>
  <script type="text/javascript" language="javascript" src="js/allinone.js"></script>
4

2 回答 2

1

检查脚本执行的顺序,如果它正在工作,你可能会更快地注意到它。还要检查 web 控制台中的 console.log() 错误。顺便说一句,标签中的语言属性<script>已经被弃用很久了,不应该使用。这些天甚至不需要打字。此外,您有两个 jQuery 版本。

<script src="js/jquery.dataTables.min.js"></script>
于 2017-01-08T19:13:34.313 回答
0

我不知道 dataTable 应该来自哪里,但事实上,$.fn.dataTable 似乎都不可用,命令 $('table').DataTable();

也许您缺少提供此功能的脚本,但如果您只想隐藏行,您可以在 min/max 中使用类似以下的内容(目前它的 jsut min - 我没有完成它 - 只是测试了它):

$('table').children('tbody').children('tr').filter(
function (key, element) {
    if (
        parseFloat($(element).children(':nth-child(3)').text())
         < parseFloat($('#counter-low').val())
        ||
        parseFloat($(element).children(':nth-child(3)').text())
         > parseFloat($('#counter-high').val())
    )
        return true;
    else
        return false;
}).css('display', 'none');
于 2017-01-08T19:02:35.137 回答