I'm having trouble creating custom buttons and editing the buttons.dom.button properties. Here is the code that I'm using;
$(document).ready(function() {
function buildTable(tableName) {
   return $('#'+tableName).DataTable( {
        dom: 'ifrt',
        paging: false,
        lengthChange: true,
        responsive: true,
        columnDefs: [
            {
                "targets": [ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 ],
                "visible": false,
                "searchable": false
            },
            { 
                "orderable": false, 
                "targets": [0, 3, 4, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] 
            }           
        ],
        buttons: [
            'excel',
            {
                extend: 'columnToggle',
                columns: 0,
                text: 'show/hide pics'
            }            
        ],
        buttons: {
           dom: {
              button:{
                 tag: 'li'
              }
           }
        }
    });
}
var tablesMen = buildTable('menTable');
$('#menTable_wrapper').prepend('<div class="dropdown"><button class=btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">dropdown<span class="caret"></span></button><ul class="dropdown-menu"></ul></div>');
tablesMen.buttons().container().appendTo($('.dropdown-menu'));
The buttons get reset to default (excel, pdf, copy, etc.) when I add the
buttons: {
           dom: {
              button:{
                 tag: 'li'
              }
           }
        }
I hope that makes sense.