I need to manipulate localStorage
and I'm not sure how to remove an item from an index. I'm very new to the subject and I'm not sure how to pass this information to the button.
Follow the code:
var base;
//verifica se tem alguma "KEY" no localStorage criada com o nome de 'base'
if (localStorage.getItem("base") != null) { // caso retorne nula
//a base vai converter a String em parenteses para exibir como KEY mais pra frente
base = JSON.parse(localStorage.getItem("base"));
} else {
//caso ja esteja criada, declara a base como um vetor;
base = {
dados: []
};
}
$(document).ready(function () {
$("#btncadastrar").click(cadastrar);
$("#btnlistar").click(listar);
$("#btnlimpar").click(limpar);
$(".excluir").click(function () {
excluir();
alert("test")
});
});
function cadastrar() {
if ($("#tarefa").val() != "") {
//base de dados armazena em um array que é chamado pela base, que contem dados, e informa que o atributo recebido sera uma TAREFA:(variavel)
base.dados.push({ tarefas: $("#tarefa").val() });
//converte os valores por uma String JSON
localStorage.setItem('base', JSON.stringify(base));
$("#idlistar").val("");
$("#tarefa").val("");
} else {
alert("Insira alguma tarefa")
}
}
function listar() {
$("#idlistar").empty();
if (localStorage.length > 0) {
base = JSON.parse(localStorage.getItem("base"));
//inserindo em uma lista que inici no UL
$("#idlistar").append('<ul class="list-group list-group-flush" id="addlistaitem">');
for (var i = 0; i < base.dados.length; i++) {
//dentro, vai inserir as linhas da lista de acordo com os dados puxados do localstorage
//aqui no append eu também criei um botão, que formatei ele dentro do css pra deixar aquele botãozinho laranja
//passar função d excluir quando clicar naquele botão tbm
$("#idlistar").append('<li class="border-1" class="list-group-item mb-2">${base.dados[i].tarefas}<input onClick="excluir()" type="button" class="excluir" value="x"></li>')
}
//finaliza a ul(lista)
$("#idlistar").append('</ul>');
}
}
function excluir() {
localStorage.setItem('base', JSON.stringify(base));
for (var i = 0; i < base.dados.length; i++) {
localStorage.removeItem(base.dados[i].tarefas);
}
}
function limpar() {
localStorage.clear();
$("#idlistar").empty();
}