2013-10-21 3 views
-2

현재 HTML5 프로젝트에서 작업 중이므로 localstorage를 사용해야합니다. localstorage에서 항목을 동적으로 제거 할 수 있기를 원합니다. 즉, 다섯 개의 항목이 있고 두 번째 항목을 제거하려는 경우 세 번째, 네 번째 및 다섯 번째 항목이 자동으로 낮은 위치에 할당되므로 간격이 남아 있지 않습니다 (이 때 매우 귀찮습니다. 내 전체 로컬 저장소를 인쇄하고 싶습니다.)localstorage에서 문자열을 동적으로 제거하고 추가합니다.

+1

친구 당신은 지금까지 시도한 것을 보여줄 수 있습니까? – zzlalani

+4

localstorage는 키 기반 내 친구이고 배열이 아닙니다 –

+0

나쁜 접근 방식입니다. @AmineHajyoussef가 이미 말했듯이, localstorage는 키 기반입니다. 배열과 같이 처리하는 것은 완전히 잘못되어 성가신 문제를 일으킬 수 있습니다. 내가 너라면, 접근 방식을 바꾸 겠어. –

답변

3

HTML5 localStorage 일명 웹 저장소는 문자열 값을 저장하기 위해 키를 사용합니다. 그래서 당신은 저장하기 전에 JSON으로 변환하여 개체 또는 배열을 저장할 수 있습니다 :

// define an array of objects 
var arr = [ 
    { name : 'first', description : 'first description' }, 
    { name : 'second', description : 'second description' }, 
    { name : 'third', description : 'third description' } 
]; 

// store the array to localStorage as a JSON string 
localStorage.setItem("data", JSON.stringify(arr)); 

// retrieve the JSON from localStorage and parse it back to an array 
var arr = JSON.parse(localStorage.getItem("data")); 

// remove the second object from the array 
arr.splice(1, 1); 

// let's update the first object too 
arr[0].name = 'first name'; 

// save it back to localStorage 
localStorage.setItem("data", JSON.stringify(arr)); 
+0

감사합니다. 이것은 정확히 우리가 시작할 필요가있는 것입니다 :) 좋은 기본 설명. 우리는 당신을 최신 상태로 유지할 것입니다. – JordyV

+0

도와 줘서 고맙습니다! 이것은 우리가 원했던 것입니다. 그것은 우리가 원하는 방식으로 작동합니다. 이 대답을 수락 할 것입니다 :) – JordyV

0
if (localStorage.text) 
{ 
    var text1 = localStorage.text; 
    var splitText1 = text1.split(','); 
    if (splitText1.length > 0) 
    for (i in splitText1) 
    { 
     var div = document.createElement("div"); 
     div.setAttribute("id", "medicament"); 
     div.innerHTML = "<h1>" + splitText1[i] + "</h1>"; document.body.appendChild(div); 
    } 
} 

이것은 우리가 우리의 화면에 물건을 인쇄하는 데 사용하는 코드입니다.

0

jstorage을 사용하면 문제를 해결할 수 있습니다.

관련 문제