2016-08-02 137 views
0

我有2个网页。一个叫创建事件和另一个事件日历。在创建事件中,表单用于允许用户输入。然后,输入被存储到本地存储,有以下功能:从本地存储检索数组中对象的值

document.addEventListener("DOMContentLoaded", docIsReady); 
var CreateEvent; 

function docIsReady() { 
    CreateEvent = localStorage.getItem("CreateEvent"); 
    if (CreateEvent == null) { 
     CreateEvent = []; 
    } else { 
     CreateEvent = JSON.parse(CreateEvent); 
    } 
} 

function saveToStorage() { 
    var one; 
    var nameofevent = document.getElementById("name").value; 
    var pList = document.getElementsByName("pos"); 
    var positions = []; 
    for (i = 0; i < pList.length; i++) { 
     positions.push(pList[i].value); 
     console.log(pList[i].value); 
    } 
    //for (i=0; i<positions.length; i++){ 
    //console.log(positions[i].value); 
    //} 
    var venue = document.getElementById("venue").value; 
    var date = document.getElementById("date").value; 
    var starttime = document.getElementById("timeStart").value; 
    var endtime = document.getElementById("timeEnd").value; 
    var contact = document.getElementById("contact").value; 
    var email = document.getElementById("email").value; 
    var desc = document.getElementById("desc").value; 
    one = { 
     "name": nameofevent, 
     "pos": positions, 
     "venue": venue, 
     "date": date, 
     "timeStart": starttime, 
     "timeEnd": endtime, 
     "contact": contact, 
     "email": email, 
     "desc": desc 
    }; 
    CreateEvent.push(one); 
    localStorage.setItem("CreateEvent", JSON.stringify(CreateEvent)); 
    return false; 
} 

我制成CreateEvent的阵列,以便存储多个输入,因为不能有只有一个事件创建。现在,我需要在事件日历的表格中显示事件的名称。作为日历,事件将按月进行排序。但是,我不知道如何访问存储在数组中的每个对象中的“日期”和“名称”值。如何检索对象中的值?

回答

0

指数为使用[]数组:

console.log(entry.name); 

边注:

var entry = CreateEvent[0]; // 0 = the first entry 

...然后在该对象上使用属性你自由了在自己的代码中做任何你喜欢的事情,但是FWIW,CreateEvent对于这个数组来说是个不寻常的名字,原因有二:1.它以大写字母开头,在JavaScript中,eas压倒性的惯例是数据变量以小写字母开头。 2.这是一个动词短语(“创建事件”),但它的值是一个名词(一系列事件)。通常,列表和数组的名称都以它们包含的名称命名,可以是复数形式,也可以是后缀,如listarray。所以在这种情况下,eventseventListeventArray会更标准。

+0

谢谢!但是,有没有办法可以使用for循环遍历所有条目? – Tan

+0

是的,或者还有[很多其他方式](http://stackoverflow.com/questions/9329446/for-each-over-an-array-in-javascript/9329476#9329476)。 –