我刚刚构建了一个 jquery 插件来处理一些数据存储。 当我尝试从存储中读取时,结果是读取的项目数据。
但是当我添加
sessionStorage.setItem('test','some data');
或删除
sessionStorage.removeItem('test');
一个项目,我总是在
undefined
中得到
console.log
我怎样才能摆脱未定义的?
我尝试的是
var result = sessionStorage.setItem('test','some data');
虽然这会将其打印到 var 但事实并非如此。
我的代码:
(function ($) {
$.storage = {
add: function(name,value){
if(typeof value === 'object' )
{
/** convert object to json **/
value = JSON.stringify(value);
}
/** add to storage **/
sessionStorage.setItem(name,value);
},
read: function(name){
/** read from storage **/
var item = sessionStorage.getItem(name);
try {
item = $.parseJSON(item);
}catch(e){}
return item;
},
remove: function(name){
/** delete from storage **/
sessionStorage.removeItem(name);
},
clear: function(){
/** clear storage **/
sessionStorage.clear();
}
}
})(jQuery);
setItem
和 removeItem
不返回任何值。因此你得到了undefined
。另请注意 removeItem
只接受一个参数。
参考,这是上述方法的函数符号
setItem(键:字符串,数据:字符串):void
此公共方法通过指定的键存储数据。请注意,如果密钥已经存储,它将覆盖它。另一件需要考虑的事情是,如果我们存储一个密钥,并通过 sessionStorage.key(0) 我们获得该密钥,然后我们存储另一个密钥/数据,最后我们再次存储第一个密钥,sessionStorage.key(0) 将返回存储的第二个密钥/数据,而不是第一个。
删除项目(键:字符串):void
此公共方法只是从存储中删除密钥和相关数据。
var result = sessionStorage.setItem('test','some data');
不返回任何东西。
sessionStorage.setItem('test','some data');
将值分配给
'test'
,因此右侧没有任何值。
你想要的是
sessionStorage.setItem('test','some data');
var result = sessionStorage.getItem('test'); //<- here the right hand side is 'some data'