Очистить предыдущие результаты запроса - PullRequest
2 голосов
/ 08 октября 2019

Через прикрепленный код я делаю поиск на YouTube по имени пользователя, и результаты отображаются. Если я ищу два раза, результаты складываются. Я хотел бы, чтобы предыдущие результаты были удалены. Я пытаюсь с htmlString = card;но это показывает только один результат. Спасибо всем, кто хочет помочь мне решить эту проблему.

var musicCards = [];

jQuery(document).ready(function() {
   
   jQuery("#searchButton").on("click", function() {
         
        var query = jQuery("#queryInput").val();
     
        if (query != "") {
           loadYoutubeService(query);
                       console.log(query + "");
        }
    });
});


function loadYoutubeService(query) {
    gapi.client.load('youtube', 'v3', function() {
        gapi.client.setApiKey('ADADADADADA');
        search(query);
    });
}

function search(query) {
   
    var request = gapi.client.youtube.search.list({
        part: 'snippet',
        q: query,
         type: 'channel',
        maxResults: 15
    });

    request.execute(function(response) {
       
        jQuery.each(response.items, function(i, item) {
  
             if (!item['']) {
                var musicCard = {};
                musicCard._id = item['snippet']['customUrl'];
                musicCard.title = item['snippet']['title'];
              musicCard.linkprofilo = item['snippet']['channelId'];
                musicCard.url = "https://www.youtube.com/channel/";
                musicCard.description = item['snippet']['description'];
                musicCard.immagine = item['snippet']['thumbnails']['high']['url'];
                musicCards.push(musicCard);
            }
            
             
        });
 
        renderView();
    });
}



function renderView() {
    var htmlString = "";
    musicCards.forEach(function(musicCard, i) {
        var card = createCard(musicCard._id, musicCard.title, musicCard.description, musicCard.url,musicCard.immagine, musicCard.linkprofilo);

        htmlString += card;
    });
   

   jQuery('#youtube-utente').html(htmlString);

}



function createCard(_id, title, description, url, immagine, linkprofilo) {
       var card = 
          

        '<div class="card">' +
        '<div class="info">' +
        '<img src="' + immagine + '" alt="' + description + '">' +
        '</div>' +
        '<div class="content">Clicca per selezionare:' +
        '<h3>' + title + '</h3>' +
        '<a class="seleziona" href="' + url +linkprofilo+'">'+ url +linkprofilo+'</a>' +
        '<p>' + description + '</p>' +
        '</div>' +
        '</div>';
    return card;
  
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>

1 Ответ

0 голосов
/ 08 октября 2019

Решено с помощью:

  request.execute(function(response) {
   musicCards.length = 0; // clear array
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...