2016-07-12 3 views
-1

Привет, У меня есть эта функция javascript для сортировки элементов в порядке возрастания с нулевым значением внизу, в Chrome и Firefox работает правильно, в то время как в Edge, Explorer и Safari нулевые значения не помещаются на но я должен сделать чек. Зачем мне это делать, есть проблема в моей функции?Функция сортировки Javascript в другом браузере

var items = $('.UCSceltaCamere').find('.bloccoCamera'); 
items.sort(function (a, b) { 
     var price_a=0; 
     var price_b=0; 
     //get value only if element has availability 
     if ($(a).find(".SelezionaCamereNoDisponibilità").length == 0) { 
      price_a = Number($(a).find("[id*='priceRoomMin']").val()); 
     } 

     if ($(b).find(".SelezionaCamereNoDisponibilità").length == 0) { 
      price_b = Number($(b).find("[id*='priceRoomMin']").val()); 
     } 
     //is null 
     if(price_a===0){ 
      return 1; 
     } 
     //is null 
     if(price_b===0){ 
      if(isIE || isEdge || isSafari){ 
       return -1 
      }else{ 
       return 0; 
      } 
     } 

     return price_a-price_b; 

    }); 
$('.UCSceltaCamere').append(items); 
+0

Пожалуйста, положить работоспособной [mcve] в вопросе с использованием стека Snippets, наряду с четким объяснением ожидаемых результатов. –

+1

Примечание: '0' и' null' - это не одно и то же. –

+0

Я использую 0 для определения элемента, который должен идти в конце, в чем разница в использовании 0 или null для идентификации этих элементов? –

ответ

0

Вы можете использовать значение по умолчанию для сортировки до конца.

return (price_a || Infinity) - (price_b || Infinity); 

Togther

items.sort(function (a, b) { 
    var price_a = 0; 
    var price_b = 0; 
    //get value only if element has availability 
    if ($(a).find(".SelezionaCamereNoDisponibilità").length == 0) { 
     price_a = Number($(a).find("[id*='priceRoomMin']").val()); 
    } 

    if ($(b).find(".SelezionaCamereNoDisponibilità").length == 0) { 
     price_b = Number($(b).find("[id*='priceRoomMin']").val()); 
    } 

    return (price_a || Infinity) - (price_b || Infinity); 
}); 
Смежные вопросы