jsfiddle(https://jsfiddle.net/6k0bshb6/45/)に表示されるように、データテーブルのドロップダウンフィルタを作成しました。データを含まないオプションがあります - 検査要素<option value=""></option>
この空のコンテナを削除し、空のときにドロップダウンボックスが選択オプションに追加オプションをスキップするように、データテーブル関数にデータテーブル関数を伝えることはできますか?Datatables - jQuery/Javascriptドロップダウンボックスに空のセレクタが含まれています
// 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>')
});
});
}
});
私は
column.data().unique().sort().each(function (d, j) {
if (d !== undefined) {
select.append('<option value="' + d + '">' + d + '</option>')
}
});
...このようなアペンド周りにif文をラップしようとしたが、それが何らかの理由で動作しませんでした。あなたはこの
column.data().unique().sort().each(function (d, j) {
d&&d.length&&select.append('<option value="' + d + '">' + d + '</option>')
});
のように修正することができます
'd!==" "'ではなく 'undefined'ですか?それを解決したhttps://jsfiddle.net/6k0bshb6/46/ – Chintan
ありがとう – Scott
は、SOのポリシーに従って答えとしてそれを追加しました。それが助けになったらそれを受け入れてください。 – Chintan