Не могли бы вы проверить, находится ли элемент в localStorage, прежде чем пытаться удалить его?
if (item in localStorage) localStorage.removeItem(item);
Я полагаю, вы проверили, что браузер использует localStorage?
EDIT
Вы можете попробовать использовать динамический идентификатор. Это будет соответствовать всем a
элементам, которые начинаются с doneItem
, а затем получить число в конце переменной index
.
$("a[id^=doneItem]").click(function(){
var index = $(this).attr("id").replace("doneItem", "");
var item = 'personal' + index;
localStorage.removeItem(item);
window.location.reload(true);
});
Вам также необходимо изменить эту строку и вставить туда i
:
document.write("<a data-role=\"button\" id=\"doneItem" + i + "\" data-transition=\"none\" href=\"#showPersonal\" data-icon=\"check\" data-iconpos=\"left\">Done</a>");
Это будет работать, только если вы также закомментируете код Modernizr. Вы заменяете переменную localalstorage здесь, и я не знаю, почему вы это делаете.
/*
if (Modernizr.localstorage) {
var localStorage = window.storage;
} else {
alert('Your browser does not support local storage!');
}
*/
Эта проблема может быть только с jsfiddle , поэтому мне пришлось удалить еще немного кода, но вот несколько работающий пример: http://jsfiddle.net/zr4tg/53/
Это может выглядеть не так, как вы хотите, но должно работать. Дайте мне знать =)