Как получить доступ к возвращаемым данным jQuery.ajax () - PullRequest
0 голосов
/ 22 мая 2011

Я использую следующий код для вызова AJAX:

  $.ajax({
    url: href,
    type: 'POST',
    data: {},
    dataType: "json",
    error: function(req, resulttype, exc)
    {
      // do error handling
    },
    success: function(data)
    {
      for (var tracklist in data) {
        console.log(tracklist.name); // undefined
        console.log(tracklist['name']); // undefined
      }
    }
  });

Я возвращаюсь к запросу AJAX:

{"5":{"id":5,"name":"2 tracks","count":2},"4":{"id":4,"name":"ddddd","count":1},"7":{"id":7,"name":"Final test","count":2}}

Я хотел бы знать, чтокак получить доступ к атрибуту имени текущего треклиста.

Ответы [ 3 ]

3 голосов
/ 22 мая 2011

Вы должны использовать

console.log(data[tracklist].name);

вместо

console.log(tracklist.name);
2 голосов
/ 22 мая 2011

Если вы хотите перебрать эти объекты, было бы лучше, если бы вы вернули массив:

[{"id":5,"name":"2 tracks","count":2},{"id":4,"name":"ddddd","count":1},{"id":7,"name":"Final test","count":2}]

Затем вы можете использовать цикл for, аналогичный тому, который вы пытались:

  for (var tracklist in data) {
    console.log(data[tracklist].id);
    console.log(data[tracklist].name);
  }
1 голос
/ 22 мая 2011

В цикле:

for (var tracklist in data) {
  console.log(tracklist.name); // undefined
  console.log(tracklist['name']); // undefined
}

tracklist является ключом каждого элемента, а не его значением.

Таким образом:

for (var tracklist in data) {
  console.log(data[tracklist].name); // ... or ...
  console.log(data[tracklist]['name']);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...