2013-02-27 33 views
0

我一直在嘗試做一個待辦事項列表,到目前爲止都有添加和刪除工作。我必須添加一個部分來標記項目已完成,所以我得到了一些代碼,以我喜歡的方式工作。在試驗代碼時,我總是嘗試在單獨的文件上工作,所以當我嘗試使用它時,我試圖將其轉移到待辦文件中,現在它無法工作。 我想明白爲什麼它不起作用的原因是因爲我沒有針對項目標識(當它輸入到列表時產生的標識) 我試圖以同樣的方式執行刪除目標標識:如何在jQuery本地存儲中只定位一個ID?

function completeTodo() { 

    var todo_item = $(this).parent(); 

    if (todo_item) { 

     var id = parseInt(todo_item.attr('id').replace('item', '')); 

     if (id) { 
      if (Modernizr.localstorage) { 
       if (localStorage.todos) { 

        var todo_list = JSON.parse(localStorage.todos); 


        if (localStorage.getItem("background") != null) { 
         getImage = localStorage.background; 
         $(".done").addClass(getImage); 
        } 


        $(document).ready(function() { 
         $('.palette').click(function() { 
          getImage = localStorage.background; 
          $(".done").removeClass(getImage); 
          localStorage.removeItem('background'); 
          var setImage = $(this).attr(id); 
          $(".done").addClass(setImage); 
          localStorage.setItem("background", setImage); 
         }); 
        }); 


        localStorage.todos = JSON.stringify(todo_list); 


        drawTodos(); 
       } 
      } 
     } 
    } 
} 

但是這並沒有奏效,我找不出一個辦法。與在jQuery的藏漢ID,生成包含「.done」類中的「部分」標籤:

$.each(todo_list, function(id, todo) { 
       todos = todos + '<section class="todo_item" id="item' + id + '"><span id="complete" class="palette complete">Complete</span><span id="incomplete" class="palette incomplete">Incomplete</span><span class="done">' + todo.name + '</span><a href="#" class="edit_todo"><img src="img/edit.png" alt="edit list item" /></a><a href="#" class="remove_todo"><img src="img/delete.png" alt="delete list item" /></a></section>'; 
      }); 

我如何可以針對在‘節’生成的ID,這樣我可以將其標記爲已完成?

回答

0

首先,它看起來像是將原始HTML存儲在本地存儲中。如果你想更多地操作它,將數據存儲在一個對象中會更好(JSON,也就是JavaScript Object Notation)。

todo_list = { 
    1 : "item 1", 
    2 : "item 2" 
}; 

如果要存儲原始HTML,則完全替換原始HTML。

相關問題