Ne peut pas remplacer la classe à la volée de localStorage dans jQuery RSS Feed

J'essaie de remplir le flux RSS avec l'utilitaire add to fav using jQuery et HTML5 localStorage. Ce que j'essaie d'atteindre est quand un utilisateur clique sur glyphicon-star-empty disponible sur le titre de la publication, il change en glyphicon-star (ce qui est fait), mais il doit stocker l'élément sélectionné / favorited dans localStorage et actualiser à la place De montrer glyphicon-star-empty , il devrait récupérer des données de localStorage concernant l'élément favorisé et afficher glyphicon-star .

Le problème auquel je suis confronté se trouve dans la dernière partie. Je peux stocker des objets fav dans localStorage mais je ne trouve pas la bonne façon de remplacer le glyphicon-star-empty avec glyphicon-star en vol pour les articles favoris lorsque la page est actualisée.

L' autre problème est que lorsque l'utilisateur clique sur glyphicon-bookmark (disponible près de l'en-tête -RSS), il doit afficher tous les éléments favoris et supprimer les éléments de localStorage et la page actuelle en désélection (c. glyphicon-star )

Voici le violon de code complet.

Et voici la fonction jquery sur laquelle je travaille:

 function blogRSS(url, container) { var content = $('.data-content'); //console.log(content); $.ajax({ url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url), dataType: 'json', success: function(data) { console.log(data.responseData.feed); $.each(data.responseData.feed.entries, function(key, value) { var thehtml = '<h4><a href="' + value.link + '" target="_blank">' + value.title + '</a></h4>'; $("body").append(itemLayout); $('.panel-heading').last().html(thehtml); $('.data-content').last().html(value.content); $('.data-title').last().next().slideToggle(0); //console.log($('.panel-heading').last().html(value.title)); //console.log($('.panel-heading').closest('.data-title').text()); if(localStorage.favorite != null){ arr = JSON.parse(localStorage.favorite); for(var i = 0; i < arr.length; i++){ // console.log($('.panel-heading').last().text() == arr[i].title); if($('.panel-heading').text() == arr[i].title){ console.log('match'); $('.bkmark_icon').removeClass('glyphicon-star-empty'); $('.bkmark_icon').addClass('glyphicon-star'); //console.log('match'); } } } }); $('.data-title').find('h4').addClass('panel-title'); 

Ajouter une modification comme celle-ci dans la boucle for, Généralement, vous devez faire une boucle sur chaque élément de liste ainsi que pour boucler le tableau pour le configurer.

  $( ".panel-heading" ).each( function( index, element ){ if($(this).text() == arr[i].title.trim()){ $(this).next().removeClass('glyphicon-star-empty'); $(this).next().addClass('glyphicon-star'); } }); 

Voici un JSfiddle modifié https://jsfiddle.net/ehqefk6j/2/