Я работаю над таблицей, где я хочу отсортировать после значения в [data-val] вместо содержимого td. Моя проблема связана с числами, которые варьируются от 95 до 200. На данный момент он видит 95 больше, чем 100 и 200. Я использую сейчас работу по добавлению 0 к числам 2-di git, но это выглядит странно и может сбить с толку пользователей.
Рабочий код сортировки следующий:
jQuery(document).ready(function($){
$("th").on("click", function() {
var clicked = $(this).attr('id');
var table = $('#mytable');
var tbody = $('#mytbody');
tbody.find('tr').sort(function(a, b) {
if($('#'+clicked+'i').val()=='asc') {
return $(b).find('.'+clicked).text().localeCompare($(a).find('.'+clicked).text());
} else {
return $(a).find('.'+clicked).text().localeCompare($(b).find('.'+clicked).text());
}
}).appendTo(tbody);
var sort_order=$('#'+clicked+'i').val();
if(sort_order=="desc") {
document.getElementById(clicked+'i').value="asc";
$('th').removeClass('asc', 'desc');
$('#'+clicked).addClass('asc');
$('#'+clicked).removeClass('desc');
}
if(sort_order=="asc") {
document.getElementById(clicked+'i').value="desc";
$('th').removeClass('asc desc');
$('#'+clicked).addClass('desc');
$('#'+clicked).removeClass('asc');
}
})
});
Под таблицей у меня есть скрытые поля ввода, в которых хранится текущий порядок сортировки для каждый из нажатых кнопок
<div class="lej-table-info-table">
<table name="mytable" id="mytable">
<thead>
<th id="t1">Adresse</th>
<th id="t2">Areal (m²)</th>
<th id="t3">Værelser</th>
<th id="t4">Pris</th>
<th id="t5">Type</th>
<th id="t6">Status</th>
</thead>
<tbody id="mytbody">
<?php
while ($query->have_posts())
{
$query->the_post();
$status = strip_tags(get_the_term_list( $post->ID, 'status', '', ', ', '' ));
$value = get_field( "kontantpris" );
$val_format = number_format($value, 0,"",".");
$areal = get_field( "areal" );
$areal_format = ltrim($areal, '0');
?>
<tr class="table-link" name="<?php global $post; echo $post->post_name; ?>">
<td class="t1"><?php echo $navn = get_field( "navn"); ?></td>
<td class="t2"><?php echo $areal_format ?></td>
<td class="t3"><?php echo strip_tags(get_the_term_list( $post->ID, 'vaerelser', '', ', ', '' )); ?></td>
<?php if ($status == 'ledig') { ?>
<td class="t4 pris" data-val="<?php echo $value ?>"><?php echo $val_format ?></td>
<?php } else { ?>
<td>-</td>
<?php } ?>
<td class="t5"><?php echo strip_tags(get_the_term_list( $post->ID, 'lejlighedstype', '', ', ', '' )); ?></td>
<td class="t6 <?php echo $status ?>" style="text-transform: capitalize"><?php echo $status ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<input type="hidden" id="t1i" value="asc">
<input type="hidden" id="t2i" value="asc">
<input type="hidden" id="t3i" value="asc">
<input type="hidden" id="t4i" value="asc">
<input type="hidden" id="t5i" value="asc">
<input type="hidden" id="t6i" value="asc">
</div>
Спасибо за любой ввод!