Я попытался выполнить сортировку элементов по максимальным и минимальным значениям, есть некоторая сортировка, но она не по максимальным и минимальным значениям, вот мой код:
$('.first-column-sort-button').on('click', function() {
$( ".oi-compare-payment-1" ).each(function() {
console.log($(this).data('sortval'));
});
$(".oi-compare-row").sort(sort_val).appendTo('.oi-compare-table-header')
function sort_val(a, b){
console.log(parseInt($(a).find('.oi-compare-payment-1').data('sortval')));
return (parseInt($(a).find('.oi-compare-payment-1').data('sortval')) > parseInt($(b).find('oi-compare-payment-1').data('sortval')));
}
})
Результат от обоих console.log()
:
console.log($(this).data('sortval'));
299.00
441.37
316.34
317.38
474.10
454.28
338.17
229.75
321.00
54
и второй:
console.log(parseInt($(a).find('.oi-compare-payment-1').data('sortval')));
441
316
317
474
454
338
229
321
54
Они не отсортированы и один элемент отсутствует. Любое предложение приветствуется.
$('.first-column-sort-button').on('click', function() {
$( ".oi-compare-payment-1" ).each(function() {
console.log($(this).data('sortval'));
});
$(".oi-compare-row").sort(sort_val).appendTo('.oi-compare-table-header')
function sort_val(a, b){
console.log(parseInt($(a).find('.oi-compare-payment-1').data('sortval')));
return (parseInt($(a).find('.oi-compare-payment-1').data('sortval')) > parseInt($(b).find('oi-compare-payment-1').data('sortval')));
}
})
body {
background: white;
}
.as-console-wrapper {
position: inherit !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h3>Unsorted:</h3>
<div class="oi-compare-row" id="oi-compare-row-1">
<div class="oi-compare-company"><img src="" alt="test1"><span>test1</span></div>
<!--oi-compare-company-->
<div class="oi-compare-payment oi-compare-payment-1" data-sortval="299.00">
<div class="oi-compare-calculation"><span class="amt">еднократно</span><span class="eq-after"></span><b class="oi-compare-total">299.00</b></div>
<!--oi-compare-calculation-->
</div>
<!--oi-compare-payment-1-->
<div class="oi-compare-payment oi-compare-payment-2" data-sortval="299.40">
<div class="oi-compare-calculation"><span class="amt">156.20</span><span class="plus">+</span><span class="amt">143.20</span><span class="eq">=</span><span class="eq-after"></span><b class="oi-compare-total">299.40</b></div>
<!--oi-compare-calculation-->
</div>
</div>
<div class="oi-compare-row" id="oi-compare-row-2">
<div class="oi-compare-company"><img src="" alt="test2"><span>test2</span></div>
<!--oi-compare-company-->
<div class="oi-compare-payment oi-compare-payment-1" data-sortval="441.37">
<div class="oi-compare-calculation"><span class="amt">еднократно</span><span class="eq-after"></span><b class="oi-compare-total">441.37</b></div>
<!--oi-compare-calculation-->
</div>
<!--oi-compare-payment-1-->
<div class="oi-compare-payment oi-compare-payment-2" data-sortval="223.55">
<div class="oi-compare-calculation"><span class="amt">460.10</span><span class="plus">+</span><span class="amt">236.55</span><span class="eq">=</span><span class="eq-after"></span><b class="oi-compare-total">223.55</b></div>
<!--oi-compare-calculation-->
</div>
</div>
<button class="first-column-sort-button">Sort</button>
<h3>Sorted:</h3>
<div class="oi-compare-table-header"></div>