Простая сортировка по числовому сценарию, 3 строки, неправильно сортирует последние несколько li, почему? - PullRequest
7 голосов
/ 08 января 2012

http://jsfiddle.net/nicktheandroid/6BAfH/1/

Элементы списка отсортированы соответственно по номеру в их диапазоне. Почему последние несколько цифр вышли из строя? Я в замешательстве.

Jquery

function sortEm(a,b){
  return parseInt($('span', a).text()) < parseInt($('span', b).text()) ? 1 : -1;
}

$('li').sort(sortEm).prependTo($('ul#test'));

HTML

<ul id="test">

    <li> Cups
        <span>12</span>
    </li>

    <li> Plates
        <span>18</span>
    </li>

    <li> Forks
        <span>03</span>
    </li>

    <li> Knives
        <span>08</span>
    </li>

    <li> Bowls
        <span>55</span>
    </li>
</ul>

1 Ответ

13 голосов
/ 08 января 2012

Добро пожаловать в мир восьмеричных чисел.

Если входная строка начинается с «0», основание равно восьми (восьмеричное). Эта функция является нестандартной, и некоторые реализации намеренно не поддерживают ее (вместо этого используется основание 10). По этой причине всегда указывайте основание при использовании parseInt.

Используйте основание 10 к основанию с parseInt .

parseInt($('span', a).text(), 10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...