Jquery 如何将值传递给DataTable中的筛选器?

Jquery 如何将值传递给DataTable中的筛选器?,jquery,datatable,filtering,jquery-datatables,Jquery,Datatable,Filtering,Jquery Datatables,我需要定制过滤器,我在datatable中使用了特殊的函数,它可以过滤,但是当我查看对过滤器的请求时,发送给过滤器的值总是空的 我的代码: jQuery(document).ready(function() { var table = jQuery('#example2').DataTable(); jQuery("#segment").on("change", function(e) { var segment = jQuery('#segme

我需要定制过滤器,我在datatable中使用了特殊的函数,它可以过滤,但是当我查看对过滤器的请求时,发送给过滤器的值总是空的

我的代码:

jQuery(document).ready(function() {
     var table = jQuery('#example2').DataTable();
        jQuery("#segment").on("change", function(e) {
            var segment = jQuery('#segment').select2('data').text;
            table.draw();
    } );
我用它来推送值,从这里我什么也得不到,即使是在console.log中

//filter push
    jQuery.fn.dataTableExt.afnFiltering.push(
        function( oSettings, aData, iDataIndex ) {

            //main filter
            var segment = jQuery('#segment').select2('data').text;
            var marke   = jQuery('#model').select2('data').text;

            console.log(segment);
            if( aData[1]== segment ||
                aData[3]== marke )
            {
                return true;
            }
            return false;

        }
    );

只需返回
true
false
即可使过滤器正常工作。您可以在当前操作时获取
标记
的值。只需测试它们是否确实在通过
console.log(segment,marke)
alert(segment,marke)
检索值,只要获取正确的值,一切都应该正常。也许显示你的HTML

jQuery(document).ready(function() {
     var table = jQuery('#example2').DataTable();
        jQuery("#segment").on("change", function(e) {
            // You do not need this as filter is run on a new table.draw();
            // var segment = jQuery('#segment').select2('data').text;
            table.draw();
    } );

//filter push
    jQuery.fn.dataTableExt.afnFiltering.push(
        function( oSettings, aData, iDataIndex ) {

            //main filter
            var segment = jQuery('#segment').select2('val');
            var marke   = jQuery('#model').select2('val');
            //Check whether you are getting an output from the log method below in your console
            console.log(segment, marke);
            if( aData[1]== segment ||
                aData[3]== marke )
            {
                return true;
            }
            return false;

        }
    );

尝试
var segment=jQuery('#segment')。选择2('data')。text();我得到的字符串不是函数,我认为这不是问题。问题是我无法访问“jQuery.fn.dataTableExt.afnFiltering.push”,因为当我尝试控制台.log伪数据时,它不会显示。好的-但是如果没有更多代码,我们无法确定您是否(a)定义了扩展,(b)正确调用了扩展?我对DataTable是新手,我很难编写“jQuery.fn.dataTableExt.afnFiltering.push”我正在定义扩展。你如何定义?代码的其余部分是调用ajax请求并使用ajax处理,我使用的是这个示例好的-这里有两件事情,Datatables看起来很好,然后
select2
刚刚查找完它,我想您需要的语法是
$(“#段”)。select2(“val”)
等等。