Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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 具有两个以上值的HTML5本地存储_Javascript_Html - Fatal编程技术网

Javascript 具有两个以上值的HTML5本地存储

Javascript 具有两个以上值的HTML5本地存储,javascript,html,Javascript,Html,我希望构建一个联系人列表样式的应用程序,使用此LocalStorage功能将联系人信息保存在用户计算机上 现在,我遇到的问题是,据我所知,每个条目只能存储两个值;名称和值 我有点不知所措,因为我想不出解决这个问题的办法。有什么建议吗?我希望为给定条目存储大约4/5个信息字段 问候,, Jack Hunt您可以将数据作为JSON对象保存在LocalStorage中。然后,键可以是类似“people”的东西,值可以是“people”对象的数组。javascript中会出现任何类型的CRUD,Loca

我希望构建一个联系人列表样式的应用程序,使用此LocalStorage功能将联系人信息保存在用户计算机上

现在,我遇到的问题是,据我所知,每个条目只能存储两个值;名称和值

我有点不知所措,因为我想不出解决这个问题的办法。有什么建议吗?我希望为给定条目存储大约4/5个信息字段

问候,,
Jack Hunt

您可以将数据作为JSON对象保存在LocalStorage中。然后,键可以是类似“people”的东西,值可以是“people”对象的数组。javascript中会出现任何类型的CRUD,LocalStorage只能用作持久性介质

考虑将每个数据类型的集合保存在单独的键字段中,作为字符串格式的JSON

// myCollection contains three objects, filled with custom type data, in array
var myCollection = [{},{},{}]
function replacer(key, value) {
    if (typeof value === 'number' && !isFinite(value)) {
        return String(value);
    }
    return value;
}
localStorage['first_collection'] = JSON.stringify(myCollection, replacer);
如果您想知道,为什么会有
replacer
函数,请查看下面的第一个链接。
这是推荐的直接做事情的方式






我以前做过,我不知道这是否有点脏,但它对我有用。我所做的是重写存储原型,以便可以存储对象

首先,我“保存”原始方法:

Storage.prototype._setItem = Storage.prototype.setItem;
Storage.prototype._getItem = Storage.prototype.getItem;
然后我用新的重写:

Storage.prototype.setItem = function(key, object){
    if(typeof object == 'object'){
        this._setItem(key, JSON.stringify(object));
    }
    else{
        this._setItem(key, object);
    }
} 
Storage.prototype.getItem = function(key){
    var val = this._getItem(key);
    try{
        val = JSON.parse(val);
    }catch(e){}
    return val;
}
有了它,您可以将其用作:

localStorage.setItem('test', {value: 1}); // or localStorage.setItem('test', '{value: 1}')
localStorage.setItem('test2', [3,2,1]); // or localStorage.setItem('test2', '[3,2,1]');
localStorage.setItem('test3', '{no object stuff');
并使用
getItem

localStorage.getItem('test');  // Object: {value: 1}
localStorage.getItem('test2'); // Array: [3,2,1]
localStorage.getItem('test3'); // String: '{no object stuff'
var name=document.getElementById('demo1').value

var email=document.getElementById('demo2').value

setItem(“name”,name)


setItem(“email”,email)

@Marek看起来很漂亮reasonable@MarekSebera-你应该把它作为答案贴出来。每个人都是这样做的。好的,谢谢。我现在正在阅读关于JSON的文章。你看,我从来没用过。也没有使用JavaScript那么长时间。谢谢
For Example we Have Two Input Element name and email, ok then we have to store key and value pair