jQuery $ .get () Порядок не соответствует - PullRequest
0 голосов
/ 25 февраля 2011

php возвращает мои массивы, упорядоченные по имени, но когда я использую $. (Get), они упорядочиваются по id.

{
"34":{"id":"34","name":"Amber","assigned":1},
"72":{"id":"72","name":"Bob","assigned":0},
"7":{"id":"7","name":"Charlie","assigned":0},
"3":{"id":"3","name":"Gary","assigned":1}
}

$.get("/assign", { clasa: clasaDL.attr('id') },
  function(data){
    var checked, boxes = "";
    $.each(data, function(n, val) {
      checked = (val.assigned == 1) ? 'checked="yes"' : '';
      boxes += '<input type="checkbox" ' + checked + ' value="' + val.id + '" />' + val.name;
    });

  $('#dialog').html('<form id="assign">' + boxes + '</form>');
}, "json");

Вопрос: как я могу заказать его по имени, а не по идентификатору?

1 Ответ

2 голосов
/ 25 февраля 2011

JavaScript объекты не упорядочены.В то время как большинство браузеров сохраняют первоначальный порядок, например, Chrome нет.

Если вы хотите отсортировать данные, используйте массив - если вам нужен доступ с помощью ключа, который не подходит для массива (не числового или многонеиспользованных ключей между фактическими ключами элемента), создайте объект, содержащий key => сопоставления индекса массива.

Таким образом, ваш JSON может выглядеть так:1008 * или получить доступ к элементу по его идентификатору, используя data[mappings['yourid']]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...