javascript - 附加到最近的选择

标签 javascript jquery

我想将我的 DataTable 中的一个函数附加到最近的选择过滤器。我怎样才能做到这一点?我的函数工作正常,但所有选择都应用于同一个表(第一个)。

我的函数代码如下所示:

$('#table1, table2, table3').dataTable({
    initComplete: function() {
        var column = this.api().column(0); 

        var select = $('<select class="filter"><option value=""></option></select>')
          .appendTo('#selectTriggerFilter')
          .on('change', function() {
            var val = $(this).val();
            column.search(val).draw()
          });
    }
} );

HTML:

<p id="selectTriggerFilter"><label><b>FILTER:</b></label><br></p>

<table class="table table-hover dataTable" id="table1">
...
</table>


<p id="selectTriggerFilter"><label><b>FILTER:</b></label><br></p>

<table class="table table-hover dataTable" id="table2">
...
</table>

我确实尝试过使用这样的变量来替换#selectTriggerFilter:

var $filter = $(this).closest("#selectTriggerFilter");

但它没有按预期工作。

提前致谢

最佳答案

我假设您有多个表并且每个表都有 <p id="selectTriggerFilter"> .问题是当你做 .appendTo('#selectTriggerFilter') , 选择器会找到第一个 #selectTriggerFilter在整个 HTML 文档中并将其附加到那个,这将是第一个表的过滤器 div。

我的处理方式如下

HTML:

<div class="table-wrapper">
    <p class="select-filter-trigger"><label><b>FILTER:</b></label></p>
    <table class="table table-hover dataTable">
        ...
    </table>
</div>

Javascript:

initComplete: function() {
    var column = this.api().column(0);
    var target = $(this).closest('.table-wrapper')
        .find('.select-filter-trigger');

    var select = $('<select class="filter"><option value=""></option></select>')
        .appendTo(target)
        .on('change', function() {
            var val = $(this).val();
            column.search(val).draw()
        });
}

关于javascript - 附加到最近的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54444697/

相关文章:

javascript - 使用 Css 和 jQuery 在悬停时更改文本

php - jquery 悬停有效,onclick 无效

javascript - Array.push 不适用于本地存储

javascript - 访问 ejs 文件内脚本标记中传递的元素

JavaScript、HTML、CSS 到类图

javascript - Jets.js 错误 : Uncaught Error: Error! 找不到 searchTag 元素

javascript - 在 jquery 函数中传递一个 javascript 变量作为 id

javascript - 在闭包中保存值(value)

javascript - 通过 JSON.stringify 解析 map

javascript - 数据未返回 Ajax