mrusklon
@mrusklon
Не получается? Яростно гугли!

Как не применять скрипт к первым двум значениям(не фильтровать) datatables.js?

есть такой пример https://datatables.net/extensions/fixedheader/exam...
я его использую , часть скрипта дублирует thread и добавляет инпуты фильтрации ,

$(document).ready(function() {
    // Setup - add a text input to each footer cell
    $('#example thead tr').clone(true).appendTo( '#example thead' );
    $('#example thead tr:eq(1) th').each( function (i) {
        var title = $(this).text();
        $(this).html( '<input type="text" placeholder="Search '+title+'" />' );
 
        $( 'input', this ).on( 'keyup change', function () {
            if ( table.column(i).search() !== this.value ) {
                table
                    .column(i)
                    .search( this.value )
                    .draw();
            }
        } );
    } );
 
    var table = $('#example').DataTable( {
        orderCellsTop: true,
        fixedHeader: true
    } );
} );


подскажите как не генерировать первые 2 инпута , чтоб их совсем не было? name и position
  • Вопрос задан
  • 71 просмотр
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
$('#example thead tr:eq(1) th').slice(2).each(... дальше всё как было

UPD. Вынесено из комментариев:

не проканало, то есть визуально все как надо но по факту поиск из фильтра стал работать не в той колонке

Ну наверное надо эту двойку добавлять к индексу внутри each, не table.column(i), а table.column(i + 2). Или не полагаться на передаваемый индекс, а вычислять его самостоятельно, что-то вроде const index = $(this).closest('th').index().
Ответ написан
romanko_vn
@romanko_vn
$('#example thead tr:eq(1) th').each( function (i) {
	if (i > 1){
		var title = $(this).text();
		$(this).html( '<input type="text" placeholder="Search '+title+'" />' );

		$( 'input', this ).on( 'keyup change', function () {
			if ( table.column(i).search() !== this.value ) {
				table
					.column(i)
					.search( this.value )
					.draw();
			}
		} );
	}
} );


либо

$('#example thead tr:eq(1) th:nth-child(n+3)').each( function (i) {
// ...
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы