2014-12-05 3 views
1

Работает отлично на Chrome, может кто-нибудь сказать мне, почему он не сортирует таблицу на Safari и как ее исправить?
Я посмотрел консоль, нет ошибки.

HTML:
«.sort» не работает на Safari

 <tr> 
      <td> 
       <input name="d1" value="01/01/1992"> 
      </td> 
     </tr> 

     <tr> 
      <td> 
       <input name="d1" value="01/01/1991"> 
      </td> 
     </tr> 
    </tbody> 
</table> 
<button>SORT</button> 


JQuery:

$('button').on('click',function(){ 
    sort(); 
}); 

function sort() { 
    $('tBody tr').sort(function(a, b) { 
     return new Date($(a).find('input[name="d1"]').val()).getTime() > new Date($(b).find('input[name="d1"]').val()).getTime() 
    }).appendTo('tBody'); 
} 

JsFiddle:
http://jsfiddle.net/nm5vbtdq/1/

+0

Какие ошибок вы получаете в Safari? – putvande

+0

Это не сортировка, на консоли нет ошибок. – BernardoLima

+0

Вы проверили, что 'new Date (...)' производит одинаковые значения для ваших входных строк во всех браузерах? Если вы не используете стандартные строки ISO 'YYYY-MM-DDTHH: mm: ss.sssZ', вполне вероятно, что они не разбираются одинаково. – apsillers

ответ

4

Я считаю, что вам нужно, чтобы вернуть -1/1 вместо булевого в Safari, смотрите ниже:

function sort() { 
    $('tBody tr').sort(function(a, b) { 
     var result = new Date($(a).find('input[name="d1"]').val()).getTime() > new Date($(b).find('input[name="d1"]').val()).getTime() ? 1 : -1; 
     return result; 
    }).appendTo('tBody'); 
} 
Смежные вопросы