我有一個應用程序,用於將li元素添加到網頁中。當我在網頁上將其標記爲「已完成」時,我需要將元素的類名稱更改爲「已完成」。 (它應該說完成:是)。用我目前的代碼,我無意中在本地存儲中創建兩個項目,一個完成:true和另一個完成:false。我會告訴我的代碼在這裏:在localStorage上標記項目「已完成」
function updateDone(e) {
var spanClicked = e.target;
var id = spanClicked.parentElement.id;
var done = spanClicked.parentElement.className;
spanClicked.innerHTML = " ✔ ";
spanClicked.setAttribute("class", "done");
var key = "todos" + id;
for(var i = 0; i < todos.length; i++) {
if(todos[i].id == id) {
var mark = todos[i];
mark.done = true;
console.log(mark);
spanClicked.setAttribute("class", "done");
var newKey = JSON.stringify(mark);
localStorage.setItem(key, newKey);
if(mark.done == false) {
spanClicked.setAttribute("class", "not done");
spanClicked.innerHTML = "not done";
}
}
}
}
他們都標有相同的ID這是我如何跟蹤每個項目的,竟然有兩個人。另外,當我刷新頁面時,會顯示兩個列表項,其中一個標記爲已完成。我的問題是如何防止創建另一個項目,而只是在localStorage中標記一個項目?
a [live-example](http://jsfiddle.net/)將會得心應手 – nimrod 2013-03-08 23:52:19
實際上,一個活的例子對於診斷問題是必要的,因爲通過查看這段代碼我不知道事件是如何發生的或任何東西。將標記和JavaScript放入jsfiddle之類的東西中,您將獲得幫助! – nimrod 2013-03-08 23:58:27