知道我的代码为什么不从localStorage中删除键值对? 如果我控制日志rowItem它正是在localStorage中编写的。如果我硬编码完全相同的字符串,例如:localStorage.removeItem(" Puppy"),它将从localStorage中删除。有什么建议吗?
链接到应用:http://kajlax.mbnet.fi/Projects/Kauppalista
$replacedValue = str_replace("a:3:{i:0,:a:2:{:i:0;s:31;q}","",$alignment[$i]);
感谢Aamir Nakhwa指出错误。它不是在这个函数中,而是在我更改选择器的另一个函数中:
// Remove item
$("#shoppingTable > tbody").on("click", "i", (function(){
let currentRow = $(this).closest("tr");
let rowItem = currentRow.find("td:eq(0)").text().substring(1);
// Delete from LS
localStorage.removeItem(rowItem);
// Delete from UI
$(this).closest('tr').remove();
}));
两个函数都使用了类似的选择器#shoppingTable并导致了碰撞。
答案 0 :(得分:2)
我已检查过您的demo link,并希望告诉您此行正常运行
localStorage.removeItem(rowItem); 一切都好
实际上在删除项目后,此事件被触发 $(“#shoppingTable> tbody”)。on(“click”,
并执行 else子句,然后通过以下行在localStorage中再次添加项目
localStorage.setItem(stateOfItem,0);
您可以通过记录else子句
中的内容来确认