2017-10-17 6 views
0

Je ne comprends pas pourquoi le tableau d'éléments est vide. Quelqu'un peut-il me dire ce qui ne fonctionne pas? Je vous remercie.vide les résultats de la demande API YouTube

jQuery(document).ready(function ($) { 

$('#infl-yt-label').on('click', function() { 
    //$('#infl-inp-search').attr("placeholder","YouTube input..."); 
    $('#infl-form-ig').hide(); 
    $('#infl-form-yt').show(); 
}); 

$('#infl-it-label').on('click', function() { 
    //$('#infl-inp-search').attr("placeholder","Instagram input..."); 
    $('#infl-form-yt').hide(); 
    $('#infl-form-ig').show(); 
}); 

$("#searchchannels").on("click", function() { 
    console.log($("#infl-inp-search-yt").val()); 
    $.get(
     "https://www.googleapis.com/youtube/v3/search?", 
     { 
      part:"snippet", 
      type:"channel", 
      q: encodeURIComponent($("#infl-inp-search-yt").val()).replace(/%20/g, "+"), 
      key:key 
     }, 
      function(data) 
      { 
       console.log(data.items) 
       $.each(data.items, function() 
       { 
       console.log(data.items); 
       }) 
      } 

     );//end get 
    alert(1); 
});//end 

});// end 

html:

 <div class="infl-sociale col-md-3 col-lg-2 text-center"> 
      <input id="infl-yt" type="radio" name="infl-sociale" value="youtube" checked> 
      <label for="infl-yt" id="infl-yt-label"><i class="fa fa-youtube-play" aria-hidden="true"></i></label> 
      <input id="infl-it" type="radio" name="infl-sociale" value="instagram"> 
      <label for="infl-it" id="infl-it-label"><i class="fa fa-instagram" aria-hidden="true"></i></label> 
     </div> 

Note: Je n'ai pas un lien de script pour le lien api google dans l'en-tête.

+0

Peut-être une erreur assync sur le rappel ou le rappel n'est pas analysé par JSON. –

+1

vous ne transmettez pas de données dans votre fonction 'each', ajoutez simplement' $ .each (data.items, function (data) ' – Grasper

+0

@Grasper, j'ai essayé votre solution, cela ne fonctionne pas. –

Répondre

0

Vous devez mettre à jour la fonction pour parcourir correctement la collection "items".

function(data) 
{ 
    console.log(data.items) /* what does this log to the console? */ 
    $.each(data.items, function(item) 
    { 
     console.log(item); 
    }) 
} 

Cela dit, quel est le résultat de la première console.log(data.items)? si c'est vide, iterer dessus ne fera rien. vous pouvez également essayer console.log(data) ou consulter l'onglet Réseau de débogage de Chrome pour voir la réponse de l'appel de l'API.