Javascript 如何删除特定索引或行中的数据本地存储
在我的代码中,如果我运行,本地存储中的数据将删除所有。如何删除我选择的1行 我搞不清楚如何从本地存储中删除表数据中的行 我现在的问题是,当我单击行表中的“删除”按钮时,行选项已删除,但本地存储中的数据未删除,然后当我刷新页面时,数据再次显示Javascript 如何删除特定索引或行中的数据本地存储,javascript,Javascript,在我的代码中,如果我运行,本地存储中的数据将删除所有。如何删除我选择的1行 我搞不清楚如何从本地存储中删除表数据中的行 我现在的问题是,当我单击行表中的“删除”按钮时,行选项已删除,但本地存储中的数据未删除,然后当我刷新页面时,数据再次显示 function hapus(r){ var i = r.parentNode.parentNode.rowIndex; document.getElementById("myTable").deleteRow(i); localStorage.
function hapus(r){
var i = r.parentNode.parentNode.rowIndex;
document.getElementById("myTable").deleteRow(i);
localStorage.removeItem('dataProduk');
}
像这样的完整代码
<script type="text/javascript">
$(document).ready(function() {
$('.js-example-basic-single').select2();
$('#getProduks').change(function(e){
let data = $('#getProduks').val();
let datas = data.split('|');
let idProduk = datas[0];
let hargaProduk = datas[1];
let stokProduk = datas[2];
let namaProduk = datas[3];
$('#hargaProduk').val('');
$('#hargaProduk').val(hargaProduk);
})
let dataStore = localStorage.getItem('dataProduk') ? JSON.parse(localStorage.getItem('dataProduk')) : [];
let subAllTotal = 0;
for (var i = 0; i < dataStore.length; i++){
let table = `
<tr>
<td width="10" align="center" scope="row"></td>
<td><button type="submit" onclick="hapus(this)"><i class="fa fa-trash-o"></i></button></td>
<td> ${dataStore[i].namaProduk}</td>
<td> ${dataStore[i].hargaProduk}</td>
<td> ${dataStore[i].disProduk}</td>
<td> ${dataStore[i].jumProduk}</td>
<td> ${(dataStore[i].hargaProduk * dataStore[i].jumProduk) - (dataStore[i].hargaProduk * dataStore[i].jumProduk * dataStore[i].disProduk/100)}</td>
</tr>
`
$('tbody').append(table);
subAllTotal += (dataStore[i].hargaProduk * dataStore[i].jumProduk) - (dataStore[i].hargaProduk * dataStore[i].jumProduk * dataStore[i].disProduk/100)
}
$('#subAllTotal').html(jadiinRupiah(subAllTotal));
$('#tambahProduk').click(function(){
let namaP = $('#getProduks').val().split('|')[3];
let hargaP = $('#hargaProduk').val();
let disP = $('#getDis').val();
let jumP = $('#getJum').val();
let data = {
namaProduk: namaP,
hargaProduk: hargaP,
disProduk: disP,
jumProduk: jumP
}
dataStore.push(data)
localStorage.setItem('dataProduk',JSON.stringify(dataStore))
let subAllTotal = 0;
let table = `
<tr>
<td width="10" align="center" scope="row"></td>
<td><button type="submit" onclick="hapus(this)"><i class="fa fa-trash-o"></i></button></td>
<td> ${data.namaProduk}</td>
<td> ${data.hargaProduk}</td>
<td> ${data.disProduk}</td>
<td> ${data.jumProduk}</td>
<td> ${(data.hargaProduk * data.jumProduk) - (data.hargaProduk * data.jumProduk * data.disProduk/100)}</td>
</tr>
`
$('tbody').append(table);
for (var i = 0; i < dataStore.length; i++){
//subAllTotal += (data.hargaProduk * data.jumProduk) - (data.hargaProduk * data.jumProduk * data.disProduk/100)
subAllTotal += (dataStore[i].hargaProduk * dataStore[i].jumProduk) - (dataStore[i].hargaProduk * dataStore[i].jumProduk * dataStore[i].disProduk/100)
}
$('#subAllTotal').html(jadiinRupiah(subAllTotal));
})
});
$('#hapusProduk').click(function(){
localStorage.clear();
});
function hapus(r){
var i = r.parentNode.parentNode.rowIndex;
document.getElementById("myTable").deleteRow(i);
localStorage.removeItem('dataProduk');
}
function jadiinRupiah(total) {
return new Intl.NumberFormat('en-US', {style: 'currency', currency: 'IDR'}).format(total).split('IDR')[1].trim()
}
$(文档).ready(函数(){
$('.js示例basic single')。选择2();
$('#getProduks').change(函数(e){
让数据=$('#getProduks').val();
设datas=data.split(“|”);
设idProduk=datas[0];
设hargaProduk=datas[1];
设stokProduk=datas[2];
设namaProduk=datas[3];
$('hargaProduk').val('');
$(#hargaProduk').val(hargaProduk);
})
让dataStore=localStorage.getItem('dataProduk')?JSON.parse(localStorage.getItem('dataProduk')):[];
设subAllTotal=0;
对于(var i=0;i
您需要获取当前数组,删除该行并再次保存
function hapus(r){
var i = r.parentNode.parentNode.rowIndex;
document.getElementById("myTable").deleteRow(i);
let data = localStorage.getItem('dataProduk');
data.splice(i,1); //remove data[i]
localStorage.setItem('dataProduk', data);
}
我不确定
dataProduk
是什么样子的-如果它是一个数组,上面的解决方案会起作用,但是如果它是一个对象,你必须使用dataProduk.filter
如果dataProduk
与你的html表有相同的行,你可以在localStorage条目中找到items索引,并为带有拼接项的localStorage条目设置一个新值。是的,我知道索引,但我混淆了代码的工作方式。谢谢你的回答,谢谢你的回答。我编辑的完整代码。请在邮局登记