Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果localStorage对象为空,则删除localStorage_Javascript_Local Storage - Fatal编程技术网

Javascript 如果localStorage对象为空,则删除localStorage

Javascript 如果localStorage对象为空,则删除localStorage,javascript,local-storage,Javascript,Local Storage,如果我有这样一个localStorage对象: 键:jpxun 值:[{“id”:“0”,“name”:“juicy.stingy”}] 然后,我可以通过以下任一路径删除: localStorage.clear() localStorage.removietem('jpxun') 我有以下代码,用于添加或删除本地存储项: var lists = document.querySelectorAll('.list'); // if lists is not empty if (lists.le

如果我有这样一个localStorage对象:

  • 键:
    jpxun
  • 值:
    [{“id”:“0”,“name”:“juicy.stingy”}]
然后,我可以通过以下任一路径删除:

  • localStorage.clear()
  • localStorage.removietem('jpxun')
  • 我有以下代码,用于添加或删除本地存储项:

    var lists = document.querySelectorAll('.list');
    
    // if lists is not empty
    if (lists.length) {
      lists.forEach(list => {
        list.addEventListener('click', e => {  
          if (!e.target.id) return;
          var id = e.target.id;
          var item = e.target;
          var temp = jpxun_length++;
          var newCt = "" + temp + ""; // need to wrap ID in speech marks to get delete element functionality to work
          var findme = jpxun.findIndex(e => e.name == id);
          
          // add word to localStorage
          
          if (findme == -1) {
            jpxun.push({ id: newCt, name: id });
            item.className = 'fav';
            var elem = document.getElementById('success');
            elem.removeAttribute('disabled');
            elem.removeAttribute('style');
            
          // remove word from localStorage
            
          } else {
              
            jpxun.splice(findme, 1)
            item.className = 'nofav';
    
            // recount elements
            var re_count = jpxun.length;
                    
            if (re_count == 0) {
            
                // delete jpxun localStorage
                localStorage.clear();
            
                // if elements are empty, make the fav button inactive
                document.getElementById('success').setAttribute("disabled" , true);
                
            }
            
          }
          
          localStorage.setItem('jpxun', JSON.stringify(jpxun));
        });
      });
      
    }
    
    如果我已从localStorage中删除了最后一项,则它如下所示:

    • 键:
      jpxun
    • 值:
      []
    在这种情况下,此行不会删除localStorage:

    localStorage.clear();
    
    localStorage.removeItem('jpxun');
    
    我也尝试过删除localStorage:

    localStorage.clear();
    
    localStorage.removeItem('jpxun');
    
    如果我在浏览器控制台中输入代码,这两个选项都可以使用,但是当从代码位调用以删除localStorage项时,当遇到以下行时,这两个选项都不会删除
    jpxun

            if (re_count == 0) {
            
                // delete jpxun localStorage
                localStorage.clear();
            
                // if elements are empty, make the fav button inactive
                document.getElementById('success').setAttribute("disabled" , true);
                
            }
    

    为什么会这样?我可以解决这个问题吗?

    这个:
    localStorage.setItem('jpxun',JSON.stringify(jpxun))
    其他
    中的
    .removietem()
    之后运行。因此,您正在将它们添加到localStorage项中。