@root288

Минусовые значения select option в конце списка?

Добрый день, есть выпадающий список значений в select, нужно отсортировать значения от меньшего к большему, и если есть значения с знаком "-" в конце списка.
Есть вот такой js, он сортирует значения от меньшего к большему, но значения с - в начале списка.
function sorted(id){
for(var c=document.getElementById(id),b=c.options,a=0;a<b.length;)
    if( b[a+1] && parseFloat(b[a].text) > parseFloat(b[a+1].text) ){
        c.insertBefore(b[a+1],b[a]);
        a = a >= 1 ? a-1 : a+1
    } else a++;
    b[0].selected=true 
};
sorted("26-disk");


https://jsfiddle.net/36y2obsL/1/
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
twobomb
@twobomb
function sorted(id) {
  for (var c = document.getElementById(id), b = c.options, a = 0; a < b.length - 1;) {
    let l = parseFloat(b[a].value),
      r = parseFloat(b[a + 1].value);
    if (!isNaN(l) && !isNaN(r) && b[a + 1] && (l > r && l > 0 && r > 0) || (l < r && l < 0 && r < 0) || (l < 0 && r >= 0)) {
      c.insertBefore(b[a + 1], b[a]);
      a = a >= 1 ? a - 1 : a + 1
    } else a++;
    b[0].selected = true
  }
};
sorted("26-disk");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы