Ответ 1
Нет, это невозможно сразу после текста, так как стрелки на самом деле являются фоновыми изображениями в CSS-классах, динамически подключаемых к <th>
. Но вы можете изменить положение справа налево:
table.dataTable thead .sorting_asc {
background: url("http://cdn.datatables.net/1.10.0/images/sort_asc.png") no-repeat center left;
}
table.dataTable thead .sorting_desc {
background: url("http://cdn.datatables.net/1.10.0/images/sort_desc.png") no-repeat center left;
}
table.dataTable thead .sorting {
background: url("http://cdn.datatables.net/1.10.0/images/sort_both.png") no-repeat center left;
}
demo → http://jsfiddle.net/ttcz5odt/
Обновление - как разместить значки стрелок непосредственно после текста.
Сделал несколько дополнительных мыслей - с небольшим "взломом" это действительно возможно. Трюк состоит в том, чтобы отключить фон <th>
и непрерывно вводить/удалять <span>
с исходными фоновую таблицу данных.
CSS (кроме отключения оригинала):
span.arrow-hack {
margin-left: 5px;
}
span.asc {
background: url("http://cdn.datatables.net/1.10.0/images/sort_asc.png") no-repeat center right;
}
span.desc {
background: url("http://cdn.datatables.net/1.10.0/images/sort_desc.png") no-repeat center right;
}
span.sort {
background: url("http://cdn.datatables.net/1.10.0/images/sort_both.png") no-repeat center right;
}
script:
var spanSorting = '<span class="arrow-hack sort"> </span>',
spanAsc = '<span class="arrow-hack asc"> </span>',
spanDesc = '<span class="arrow-hack desc"> </span>';
$("#example").on('click', 'th', function() {
$("#example thead th").each(function(i, th) {
$(th).find('.arrow-hack').remove();
var html = $(th).html(),
cls = $(th).attr('class');
switch (cls) {
case 'sorting_asc' :
$(th).html(html+spanAsc); break;
case 'sorting_desc' :
$(th).html(html+spanDesc); break;
default :
$(th).html(html+spanSorting); break;
}
});
});
обновить значки стрелок:
$("#example th").first().click().click();
Теперь это похоже на то, что мы хотели!: