2011-09-29 23 views
20

से शुरू होने वाली स्थानीय स्टोरेज कुंजी हटाएं मेरे पास 2 स्टोर्स स्थानीय स्टोरेज के साथ मिलकर काम कर रहे हैं और मैं सोच रहा था कि मैं नोट्स और टोडो- से शुरू होने वाली सभी चाबियों को कैसे हटा सकता हूं। मुझे पता है localstorage.clear() सबकुछ साफ़ करता है लेकिन यह मेरा लक्ष्य नहीं है।एचटीएमएल 5 लोकलस्टॉरेज और jQuery: एक निश्चित शब्द

यहाँ मैं क्या मेरी LocalStorage में है का एक उदाहरण है: enter image description here

मैं कहाँ एक बटन क्लिक करें और सभी नोट- * jQuery का उपयोग अन्य बटन क्लिक के साथ साथ सभी todo- * हटाना चाहते हैं।

धन्यवाद

+1

http://stackoverflow.com/questions/3138564/looping-through-localstorage-in-html5-and-javascript –

उत्तर

40
Object.keys(localStorage) 
     .forEach(function(key){ 
      if (/^todo-|^note-/.test(key)) { 
       localStorage.removeItem(key); 
      } 
     }); 
+0

यह कार्य करने-के केवल नष्ट करने के लिए लगता है? अजीब – jQuerybeast

+2

RegEx '/^(?: todo- | नोट -) /' होना चाहिए। '?: 'इसे एक गैर-कैप्चरिंग समूह बना देगा जो चीजों को थोड़ा सा गति देगा। '/^todo- |^नोट-/'किसी भी समूह के बिना भी काम करना चाहिए। –

+0

ऐसा लगता है कि समस्या नहीं है। मुझे लगता है कि समस्या उस ऐप के कोडिंग में है क्योंकि मैंने फायरबग के माध्यम से मूल्य को हटाने की कोशिश की और जब मैं रीफ्रेश करता हूं तो मुझे इसे वापस मूल्य मिलता है। – jQuerybeast

9

बहुत मैं @Ghostoy लिए एक समान विधि का इस्तेमाल किया है, लेकिन मैं एक पैरामीटर में खिलाने के लिए, के बाद से मैं अपने कोड में कई स्थानों से इस फोन करना चाहता था। मैं नियमित पैरामीटर में अपने पैरामीटर नाम का उपयोग करने में सक्षम नहीं था, इसलिए मैंने बस इसके बजाय सबस्ट्रिंग का उपयोग किया।

function ClearSomeLocalStorage(startsWith) { 
    var myLength = startsWith.length; 

    Object.keys(localStorage) 
     .forEach(function(key){ 
      if (key.substring(0,myLength) == startsWith) { 
       localStorage.removeItem(key); 
      } 
     }); 
} 
संबंधित मुद्दे