En mi tabla de datos, me gustaría implementar la búsqueda de columnas individuales que se muestra en esta página:
https://datatables.net/examples/api/multi_filter.html
Estoy usando el paquete DTedit R, una extensión de DT , y no tiene el conveniente argumento de filter . Entonces, estoy tratando de usar el argumento datatable.options dentro de dtedit para implementar la búsqueda de columnas individuales.
En dtedit , puedo incorporar código JS con el siguiente código:
jsc <- `Some JS code` dtedit(input, output, name = "input_table", thedata = design, ..., datatable.options = list(initComplete = JS(jsc)) ) Mis habilidades JS no existen y necesito ayuda para descubrir cómo usar el siguiente código JS en mi dtedit
$(document).ready(function() { // Setup - add a text input to each footer cell $('#example tfoot th').each( function () { var title = $(this).text(); $(this).html( '<input type="text" placeholder="Search '+title+'" />' ); } ); // DataTable var table = $('#example').DataTable({ initComplete: function () { // Apply the search this.api().columns().every( function () { var that = this; $( 'input', this.footer() ).on( 'keyup change clear', function () { if ( that.search() !== this.value ) { that .search( this.value ) .draw(); } } ); } ); } }); } );Así es como lo haría con el paquete DT :
initComplete <- " function(settings) { var table = settings.oInstance.api(); var ncol = table.columns().count(); var append = function (i) { var column = table.column(i); var colname = column.header().textContent; var $input = $( '<input type=\\\"text\\\" placeholder=\\\"Search ' + colname + '\\\" />' ); $(column.footer()).append($input); $input.on('keyup change clear', function () { if (column.search() !== this.value) { column.search(this.value).draw(); } }); }; for (var i = 1; i < ncol; i++) { append(i); } } " dat <- iris sketch <- htmltools::withTags(table( class = 'display', thead( tr( lapply(c("", names(dat)), th) ) ), tfoot( tr( lapply(rep("", 1+ncol(dat)), th) ) ) )) datatable( dat, container = sketch, options = list( initComplete = JS(initComplete), columnDefs = list( list(targets = "_all", className = "dt-center") ) ) ) No estoy familiarizado con DTedit . Pero eché un vistazo al documento y parece que no acepta la opción de container . Y desafortunadamente, no es posible agregar un pie de página a una tabla de datos con JavaScript.