使用选择框进行Datatable表格的单列搜索

3

我可以在datatable中使用选择框进行单独搜索,但我只想为一列做这件事,其他列不必要。例如,我只想在第二列和第三列上激活此选择框。

我发现这个网址,但它对我没有帮助。这是我的JavaScript代码:

$(document).ready(function() {
    var table = $('#example').DataTable();

    $("#example tfoot th").each( function ( i ) {
        var select = $('<select><option value="">Lütfen seçiniz</option></select>')
            .appendTo( $(this).empty() )
            .on( 'change', function () {
                var val = $(this).val();

                table.column( i )
                    .search( val ? '^'+$(this).val()+'$' : val, true, false )
                    .draw();
            } );

        table.column( i ).data().unique().sort().each( function ( d, j ) {
            select.append( '<option value="'+d+'">'+d+'</option>' )
        } );
    } );
} );

@Skynet:我再次提醒您修复帖子中其他明显的问题,例如不必要的问候语(“谢谢”),代码缩进不正确以及帖子中的其他格式问题。编辑会将帖子推到主页的顶部,仅为添加标签而这样做是浪费时间。 - Qantas 94 Heavy
@Qantas 94 Heavy 多次尝试,但该网站不让我修正它们,称其不够。所以在这里我对此无能为力。 - Arnab Nandy
1
@Skynet:然后也编辑其他文本,修正帖子中的一些拼写错误,这样就可以了。我已经替你完成了这个任务,看一下编辑摘要就可以看到我所做的修改。 - Qantas 94 Heavy
1个回答

2

有没有解决方法。

你可以执行以下操作:

$(document).ready(function() {

    var table = $('#example').DataTable();

    $("#example tfoot th").each( function ( i ) {

    if(i == 0){ //Create just one SelectBox
            var select = $('<select class='+i+'><option value=""></option></select>')
                .appendTo( $(this).empty() )
                .on( 'change', function () {

                    var val = $(this).val();

                    table.column( 0 ) //Only the first column
                        .search( val ? '^'+$(this).val()+'$' : val, true, false )
                        .draw();
                } );

            table.column( 0 ).data().unique().sort().each( function ( d, j ) {
                select.append( '<option value="'+d+'">'+d+'</option>' );
            } );
    } 
});
} );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接