我正在尝试使用jquery从localstorage中删除单个项目。实际上我正在使用localstorage将数据存储为收藏夹。我在listivew中显示所有收藏夹。我添加了一个复选框,用于选择要删除的favouties中的单个项目,但我尝试了很多从localstorage中删除所选的复选框,它对我不起作用。
我的代码:
function fromGetStorage() {
$("#favoritesList").empty();
//$("#favoritesList").addClass('current');
$("#favoritesList").append('<input type="checkbox" name="all" id="select" />Select all</br>');
$("#fav .ui-listview-filter").remove();
for (var i = 0; i < localStorage.length; i++) {
var url = localStorage.key(i);
var item = localStorage.getItem(url);
$("#favoritesList").append('<li id="add"><div><input type="checkbox" name="check" id="check"> <a href="' + url + '" style="text-decoration:none;color:black">' + item + '</a></div></li>').attr('url', url);
$("#favoritesList").listview('refresh');
}
$("#select").click(function(event){
event.stopPropagation();
});
$('#select').change(function() {
if ($("#select").is(':checked')) {
$("#add #check").prop("checked", true);
$('#empty').on('click', function() {
localStorage.clear();
$("#favoritesList").listview('refresh');
});
}
else {
$("#add #check").prop("checked", false);
}
});
$("#add #check").click(function(event){
event.stopPropagation();
});
$("#add #check").change(function() {
var item = $(this);
$("#delete").on('click', function() {
if ($("#add #check").is(':checked')){
// item.closest("li").remove();
localStorage.removeItem(url);
}
$("#favoritesList").listview('refresh');
});
});
}
更新
我正在更新我的代码,但有些更改正在运行但不正确。
$("#add #check").change(function() {
$("#delete").on('click', function() {
if($("#add #check").is(':checked')){
var i = $('input[name="check"]:checkbox:checked').length;
if ( i > 0)
{
var url = localStorage.key(i);
localStorage.removeItem(url);
$("#favoritesList").listview('refresh');
}
}
$("#favoritesList").listview('refresh');
});
});
先谢谢。