我一直在嘗試從localStorage獲取ID,但無法實現它。 events
中的我的localStorage包含如下所示。現在如何從localStorage獲取唯一的ID以進行刪除按鈕
[{"id":"ef5","title":"wan","start":"2016-05-12","end":"2016-05-13"},{"id":"ef6","title":"wana","start":"2016-05-21","end":"2016-05-22"},{"id":"ef7","title":"haha","start":"2016-05-25","end":"2016-05-26"},{"id":"ef8","title":"asdas","start":"2016-05-20","end":"2016-05-21"},{"id":"ef9","title":"sdas","start":"2016-05-19","end":"2016-05-20"}]
我將提供2編碼條件是i迄今爲止嘗試了不同的方法。有關信息,我看看這個主題:localstorage: Get specific localstorage value of which contains many items 但沒有爲我工作。
我沒試過如下編碼:
第1種方法:
$("#deleteEventYes").click(function(){
var indexDel = localStorage.getItem("events");
var deleteId = calEvent.id;
var result = localStorage.getItem("events");
function getItemHrefById(json, itemId){
return $(json).filter(function(){return this.id == itemId;})[0].href;
}
var href = getItemHrefById(result, deleteId);
alert(href); });
上面代碼中表現出一定的排列方法(我認爲)這裏我使用indexDel從localStorage的獲取項目(events
)而deleteId我採取了calEvent.id這是已被點擊要刪除的事件的ID。除此之外,我認爲你們知道它是什麼。但是對於這種方法,我使用result
變量而不是indexDel。
for (var i = 0 ; i < indexDel.length ; i += 1) {
if(deleteId == indexDel[i].id) {
return indexDel[i];
console.log(deleteId);
console.log(indexDel[i]);
}
}
return null;
上面的代碼是使用自定義的循環,我認爲:因此,如果從我的GetItem的localStorage 2倍
第二個方法並不介意。 indexDel的變量聲明與第一個方法仍然相同。我嘗試使用重構方法,但對於我來說,它似乎很難理解它是如何完成的。是因爲我的變量位置錯了嗎?還是因爲它不適合我的情況?
注意:我想刪除eventClick函數內部的一個事件,到目前爲止,我沒有檢索到該id,並從基於id的日曆中刪除該事件。然而,我現在唯一的問題是匹配刪除的事件ID與我的localStorage中的ID並刪除該項目。到目前爲止,從我身上獲取身份證非常複雜。
修訂
我已經做了這樣的事情,但仍然不能正常工作。任何人都可以告訴我這裏出了什麼問題?它不會給我任何錯誤,但它什麼都不做。甚至不刪除。 https://jsfiddle.net/v35a2o07/3/
'localStorage'將值存儲爲字符串。在對它們進行操作之前,請務必使用'JSON.parse()'值。 :) – SimianAngel
你的意思是這樣嗎? https://jsfiddle.net/v35a2o07/ 它不工作:( 我想我可能會誤解與變量的位置。這就是爲什麼我很難跟着這樣的方法 – AhKing
使用'delete'關鍵字刪除數組元素。 –