我正在使用本地存储来保存id,如下所示,它可以正常工作。当我单击锚点时,它会将值发送到数组中。问题是,当我再次单击它时,它会将相同的值再次保存到同一个数组中。我想在第二次点击时从数组中取出该值。所以基本上我希望它作为一个切换。
$(".favorites").click(function() {
var favorite = JSON.parse(localStorage.getItem( 'favorite' ));
if (favorite == undefined)
{
favorite = Array();
}
favorite.push($(this).attr('data-petid'));
localStorage.setItem( 'favorite', JSON.stringify(favorite) );
JSON.parse( localStorage.getItem( 'favorite' ) );
});
答案 0 :(得分:0)
添加一个条件,如果收藏夹未定义或为null,则只返回该值。
$(".favorites").click(function() {
var favorite = JSON.parse(localStorage.getItem( 'favorite' ));
if (favorite === undefined || favorite === null)
{
favorite = Array();
favorite.push($(this).attr('data-petid'));
localStorage.setItem( 'favorite', JSON.stringify(favorite) );
JSON.parse( localStorage.getItem( 'favorite' ) );
}
else{
alert('favorite');
}
});
答案 1 :(得分:0)
好的,你的描述一开始并不清楚,你的意思是从数组中取出值,对吗?
$(".favorites").click(function() {
var favorite = localStorage.getItem( 'favorite' );
var petid = $(this).attr('data-petid');
var index;
favorite = JSON.parse(favorite) || [];
if ((index = favorite.indexOf(petid)) === -1) {
favorite.push(petid);
} else {
favorite.splice(index, 1);
}
localStorage.setItem('favorite', JSON.stringify(favorite) );
}