【发布时间】:2017-06-07 16:41:49
【问题描述】:
我正在使用 jQuery/JS 将一些项目添加到 localStorage,这一切都很好,但尝试删除数组中的特定项目(如果它是同一个项目)是困难的。
在我的控制台日志(用于测试)中,它似乎清除了 [Object],但它没有更新密钥。也许我的层次结构是错误的......有什么想法吗?
//
function addToStorage(elem, name) {
localData = localStorage.getItem(name + 'Storage');
var typefaces;
if (localData == 'null' || !localData) {
typefaces = [];
} else {
typefaces = JSON.parse(localData);
}
typefaceID = elem.find('input').val();
typefaceName = elem.find('input').attr('data-name');
typefacePrice = elem.find('input').attr('data-price');
typefaceQty = 1;
$.each(typefaces, function(index, value) {
if (value !== null) {
if (value.id == typefaceID) {
if (name == 'drf') {
//console.log(index);
//console.log(typefaces);
typefaces.splice(index, 1);
//console.log(typefaces);
}
}
}
});
typefaces.push({
'id': typefaceID,
'name': typefaceName,
'price': typefacePrice,
'qty': typefaceQty
});
localStorage.setItem(name + 'Storage', JSON.stringify(typefaces));
}
//
$(document).on('click', 'summary.cart td.font', function(e) {
e.preventDefault();
addTo = $(this);
addTo.each(function() {
addToStorage(addTo, 'drf');
});
});
这是添加后的 localData 示例。
[
{
"id":"dr-raymond-desktop-40374",
"name":"DR-Raymond",
"format":"Desktop (OTF)",
"price":"15.00",
"qty":1
},
{
"id":"dr-raymond-webfont-39949",
"name":"DR-Raymond",
"format":"Webfont (WOFF)",
"price":"15.00",
"qty":1
}
]
【问题讨论】:
-
你能给你的 json localdata 或任何小提琴链接提供一个格式,以便它更容易解释吗?
-
@breakit 这就是它添加到原来的问题谢谢!
-
“更新密钥”是什么意思?
-
@XavierJ 如果您在检查 localStorage 时从 Chrome DevTools 中看到我的图片附件,请见谅。此实例中的“键”是 localStorage,“值”是内容(localData 数组)
-
@JohnthePainter 请检查我的回答,您的代码中还有其他错误。
标签: javascript jquery html local-storage