Comment faire pour supprimer l'élément individuel de la localStorage dynamiquement
Je suis en train de supprimer les éléments individuels de la localStorage à l'aide de jquery. Ici, je suis en ajoutant les cases à cocher pour chaque élément dans la listivew pour l'enlèvement de la sélectionné la case à cocher des éléments de supprimer à partir de localStorage mais sa ne fonctionne pas correctement.
Mise À Jour Du Code:
$(document).ready( function() {
$("#section_list").on('click', 'a', function() {
var item = $(this).find('h2').text();
var desc = $(this).find('p').text();
var html = '<p></br><p class="description">' + desc + '</p>';
$('.addToFavoritesDiv').click(function() {
var url = $(location).attr('href');
if (!supportLocalStorage())
{
item = 'No support';
}
else
{
try
{
localStorage.setItem('autosave' + url, item + html);
}
catch (e)
{
if (e == QUOTA_EXCEEDED_ERR)
{
alert('Quota Exceeded');
}
}
}
});
});
$('#fav').click(function() {
fromStorage();
$("#favoritesList").listview('refresh');
});
$(document).on('click', '#edit', function() {
fromGetStorage();
});
});
function supportLocalStorage()
{
return typeof(Storage) !== 'undefined';
}
function fromStorage()
{
$("#favoritesList").empty();
$("#favoritesList").listview('refresh');
for (var i = 0; i < localStorage.length; i++) {
var url = localStorage.key(i);
var item = localStorage.getItem(url);
$("#favoritesList").append('<li id="add"><a href="' + url + '" style="text-decoration:none;color:black">' + item + '</a></li>').attr('url', url);
}
$("#favoritesList").listview('refresh');
}
function fromGetStorage()
{
$("#favoritesList").empty();
$("#favoritesList").append('<input type="checkbox" name="all" id="select" />Select all</br>');
$("#fav .ui-listview-filter").remove();
for (var i = 0; i < localStorage.length; i++) {
var url = localStorage.key(i);
var item = localStorage.getItem(url);
$("#favoritesList").append('<li id="add"><div><input type="checkbox" name="check" id="check"> <a href="' + url + '" style="text-decoration:none;color:black">' + item + '</a></div></li>').attr('url', url);
$("#favoritesList").listview('refresh');
}
$("#select").click(function(event){
event.stopPropagation();
});
$('#select').change(function() {
if($("#select").is(':checked')) {
$("#add #check").prop("checked", true);
$('#empty').on('click', function() {
localStorage.clear();
$("#favoritesList").listview('refresh');
});
}
else {
$("#add #check").prop("checked", false);
}
});
$("#add #check").click(function(event){
event.stopPropagation();
});
$("#add #check").change(function() {
var chkLength = $('input[name="check"]:checkbox').length;
var chkdLength = $('input[name="check"]:checkbox:checked').length;
if (chkLength == chkdLength)
{
$('#select').prop('checked', true);
$('#empty').on('click', function() {
localStorage.clear();
$("#favoritesList").listview('refresh');
});
}
else
{
$('#select').prop('checked', false);
}
$("#delete").on('click', function() {
var checked = $('#add #check:checkbox:checked');
var url = localStorage.key(checked);
localStorage.removeItem(url);
$("#favoritesList").listview('refresh');
$("#favoritesList").listview('refresh');
});
});
}
Merci d'Avance.
- Avez-vous été en mesure de trouver une réponse à cela? Je vais avoir le même problème lors de la suppression d'enregistrements spécifiques à partir d'une liste de favoris.
InformationsquelleAutor Lucky | 2013-09-09
Vous devez vous connecter pour publier un commentaire.
Êtes-vous à l'aide de valeurs booléennes comme clé? Il ne fonctionnera pas.
Il devrait être :
ou
Si vous êtes à la réflexion sur la touche numérique, voici quelque chose qui semble fonctionner.
Ensuite une boucle sur le stockage local pour trouver ce que l'élément que vous recherchez (dans ce cas, la première):
Maintenant que vous avez la clé dont vous avez besoin, il suffit de retirer avec: