【发布时间】:2016-05-31 07:37:08
【问题描述】:
我已经为我的数据表制作了一个下拉过滤器,正如您在 jsfiddle (https://jsfiddle.net/6k0bshb6/45/) 中看到的那样,有一个不包含数据的选项 - 如果您查看检查元素 <option value=""></option> 我如何删除这个空容器并告诉我的下拉框数据表函数在它们为空时跳过将选项附加到选择选项。
// Dropdown filter function for dataTable from hidden column number 5 for filtering gifts.
initComplete: function () {
this.api().columns(5).every(function () {
var column = this;
var select = $('<select><option value="">Show all</option></select>')
.appendTo($("#contracts_control-panel").find("div").eq(1)) // append dropdown to div 2 in control panel
.on('change', function () {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val());
column.search(val ? '^' + val + '$' : '', true, false)
.draw();
dataTable.page.len(5).draw(); //reset pagination after dropdown filter change.
});
column.data().unique().sort().each(function (d, j) {
select.append('<option value="' + d + '">' + d + '</option>')
});
});
}
});
我尝试像这样在 append 周围包裹一个 if 语句...
column.data().unique().sort().each(function (d, j) {
if (d !== undefined) {
select.append('<option value="' + d + '">' + d + '</option>')
}
});
但由于某种原因它不起作用。
【问题讨论】:
-
d !== ""而不是undefined? jsfiddle.net/6k0bshb6/46 -
解决了,谢谢
-
根据 SO 政策将其添加为答案。如果有帮助请采纳。
标签: javascript jquery datatables