Я знаю, что это старый пост, но у меня недавно была такая же проблема, и я не нашел именно то, что мне было нужно, и надеюсь, что это полезно для других. Вот как я это разрешил:
В элементе <thead>
создайте 2 <tr>
элементов, каждый из которых содержит соответствующие столбцы <th>
. Добавьте имена заголовков столбцов ко второму элементу <tr>
. Примените стандартный атрибут class='select-filter'
(во втором <tr>
) к тем заголовкам, для которых потребуется список выбора. Добавьте атрибут id
в следующем формате: *headerValue*-select-filter
(где headerValue = имя заголовка, оно ДОЛЖНО соответствовать точно), где бы вы хотели разместить список выбора (может быть в разных столбцах и т. Д.). Функция appendTo примет имя заголовка и создаст идентификатор для присоединения.
заголовок HTML:
<table>
....
<thead>
<tr>
<th><div id="Column4-select-filter"></div></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr class="active">
<th>Column1</th>
<th>Column2</th>
<th>Column3</th>
<th class="select-filter">Column4</th>
</tr>
</thead>
....
</table>
Часть сценарий примет значение <th>
из я (ы) с помощью атрибута выбора фильтра (В приведенном выше примере = «column4»), то он будет генерировать следующий тег #Column4-select-filter
. Затем скрипт добавит завершенный список выбора в <div>
с соответствующим id
. В приведенном выше примере это будет первый столбец (вы можете поместить это в любой столбец). Вы также можете создать <div>
в любом месте вашего макета, и это сработает.
JavaScript:
table.columns('.select-filter').every(function (index) {
var that = this;
// Get the header name for this column
var headerName = table.column(index).header().innerText;
// generate the id name for the element to append to.
var appendHere = '#' + headerName + '-select-filter';
// Create the select list and search operation
var select = $('<select />')
.appendTo(
$(appendHere)
)
.on('change', function() {
// DO STUFF HERE
});
// CAN HAVE OTHER TASKS HERE
});
Я знаю, что я изменил свой вопрос довольно сильно; пожалуйста, дайте мне знать, если я пропустил что-нибудь. –
Кроме того, это предположение (полное раскрытие), но в '$ (document) .ready', вы пытались изменить селектор JQuery с« 'tfoot th'» на «thead th'»? –
спасибо за модификацию :) .. я пробовал, но не работал – user1763141