Цикл через массив WP REST API AJAX с использованием jQuery

Я пытаюсь пройти через массив AJAX, созданный из API WP REST. У меня нет проблем с возвратом данных из первого сообщения в массиве:

$( '#button' ).on( 'click', function ( e ) {
            e.preventDefault();
            $.ajax( {
              url: 'http://url.com/wp-json/posts?type=post&filter[posts_per_page]=20',
              success: function ( data ) {
                var post = data.shift(); // The data is an array of posts. Grab the first one.

                    $( '.item .front_feed_title' ).text( post.title );
                    $( '.item .front_feed_content' ).html( post.content );

              },
              cache: false
            } );
          } );

Однако мне нужно перебрать массив AJAX, и я не могу понять синтаксис, который для этого работает. Я хочу передать data в функцию .each Это не работает:

$( '#button' ).on( 'click', function ( e ) {
            e.preventDefault();
            $.ajax( {
              url: 'http://url.com/wp-json/posts?type=post&filter[posts_per_page]=20',
              success: function ( data ) {

                 $.each([data], function(i, objects) {

                     console.log(i.title);

                 });

              },
              cache: false
            } );
          } );

Моя консоль говорит, что объект не определен. Может ли кто-нибудь дать некоторое представление о том, как мне передать data в функцию jQuery .each?


person Marc    schedule 14.08.2015    source источник
comment
data — это массив, поэтому передайте его. В настоящее время вы оборачиваете свой массив data в другой массив с данными в качестве единственного элемента [data]. Просто пройди data   -  person azium    schedule 15.08.2015
comment
не минусуйте, не сказав мне почему   -  person bassxzero    schedule 15.08.2015
comment
Передача data вместо [data] в этом случае, похоже, не имеет значения. Это все еще не определено. Когда я использую ответ @bassxzero ниже, я вижу данные, но только для первого результата. Его почти работает, но не проходит через ответ. К сожалению, я не могу опубликовать ответ, так как он содержит конфиденциальные данные клиента.   -  person Marc    schedule 17.08.2015


Ответы (1)


Не зная структуры ваших объектов, трудно сказать, но попробуйте. Внутри функции this относится к текущему объекту. Таким образом, вы можете ссылаться на такие элементы, как this.KEY

$.each(data,function(){

console.log( this.title ,this.content);

})
person bassxzero    schedule 14.08.2015
comment
Вы должны объяснить, что вы меняете и почему, в своем ответе вместе с кодом. - person azium; 15.08.2015
comment
Почему за это проголосовали? Ответчику не поможет, если вы не объясните... (кем бы вы ни были). - person rnevius; 15.08.2015
comment
Спасибо за ваш ответ, я попробовал это, и это почти работает. Он отображает первый результат, но не повторяет ответ AJAX. У вас есть идеи, почему это может быть? (Я не проголосовал за вас) - person Marc; 17.08.2015
comment
@ mbacon40 это действительно перебирает их все. Если вы видите только один результат, ваш вызов API возвращает только один результат. У вас есть образец URL-адреса API? - person bassxzero; 18.08.2015
comment
Ага! Я обнаружил, что у меня было var post = data.shift(); до того, как я запустил .each. Удаление этого устранило проблему. Спасибо! - person Marc; 18.08.2015