2013-11-21 2 views
1

버튼을 lolalStorage로 클릭하면 각 ID를 저장하려고합니다.버튼을 누를 때마다 localStorage에 배열 저장

$("li").on("click", "a", function(){ 
    var test = {"id": id, "name":name}; 
    localStorage.setItem("test", JSON.stringify(test)); 
}); 

페이지 재로드시 하나의 ID 만 얻을 수 있습니다.

+0

당신이에 데이터를 저장하는 경우 같은 변수 예 'test' 그러면 마지막으로 저장된 하나의 객체 만 저장하게됩니다. 다른 오브젝트를 저장하고 오브젝트를 검색 할 수 있으려면 오브젝트 ID에 따라 다른 키를 사용해야합니다. – melc

답변

4

클릭 할 때마다 동일한 항목을 다시 정의하므로 마지막 항목 만 저장합니다. test이이 값의 키입니다.

1.- 사용 id 로컬 스토리지의 정보를 저장하거나 정보를 새로운 객체를 생성 :

당신은 두 가지 옵션이 있습니다.

로컬 스토리지 키로 id 사용 :이 나중에 정보를 검색하기 위해 복잡 있도록

$("li").on("click", "a", function(){ 
    localStorage.setItem(id, name); 
}); 

이 방법은 당신이 이미 로컬 스토리지에 가지고있는 아이디의 알 수 없습니다.

2. 다른 옵션은 모든 키 - 값 개체가있는 배열을 저장하는 것입니다. 하고있는만큼 쉽게 정보를 검색 할 수 그럼

$("li").on("click", "a", function(){ 
    var test = localStorage.getItem("test"); 
    var obj = []; 
    if(test){ 
     obj= JSON.parse(test); 
    } 
    obj.push({"id": id, "name":name}); 
    localStorage.setItem("test",JSON.stringify(obj)); 
}); 

: 당신은 여러 개체를 포함하는 로컬 스토리지에서 하나 개의 객체를 저장할

var test = JSON.parse(localStorage.getItem("test")); // Returns array with multiple objects 

http://jsfiddle.net/CgpeF/

+0

옵션 번호 1을 사용하려면 값을 어떻게 가져 옵니까? – leeshin

+0

이것은 내가 코멘트에서 지적한 것입니다. 어떤 ID를 이미 저장했는지는 알 수 없을 것입니다. – margabit

+0

안녕하세요. 설명은 의미가 있지만 메서드 푸시를 사용하면 오류가 발생합니다. – leeshin

2

localStorage는 매번 동일한 "test"키를 사용하기 때문에 모든 클릭에 대해 동일한 값을 덮어 쓰게됩니다. 사용 해보십시오.

localStorage.setItem(id, name); 
관련 문제