无法从对象数组中检索数据?

时间:2016-03-04 08:52:49

标签: javascript jquery arrays local-storage

我正在本地存储中保存对象列表。通过以下代码

var employeeArray = [];
 function SaveData() {
        counter = counter + 1;
        employeeArray.push
        ({
            ID : counter,
            FirstName : $('#txtFirstName').val(),
            LastName : $('#txtLastName').val(),
            MobileNo : $('#txtMobileNo').val(),
            Address : $('#txtAddress').val()
        })
        localStorage.setItem("employee", employeeArray);
        BindData();
    }

当我通过以下代码从本地存储中检索数据时

function BindData() {
        var employee = localStorage.getItem("employee");
        for (var key in employee) {
            alert(key);

            var tr = CreateElement('tr', null)
            tr.append(CreateElement('td', employee[key]));
            $('#tblData').append(tr);
        }
    }

key只给我索引值0,1,2 ....我正在寻找要使用的属性的名称,如key.ID

如何实现?

1 个答案:

答案 0 :(得分:4)

在存储api中,值存储为字符串值,因此您需要在存储之前将employeeArray转换为json字符串

localStorage.setItem("employee", JSON.stringify(employeeArray));

然后在阅读时,您需要将字符串转换回像

这样的对象
function BindData() {
  var employee = JSON.parse(localStorage.getItem("employee"));
  employee.forEach(function(emp) {
    var tr = CreateElement('tr', null)
    tr.append(CreateElement('td', emp.FirstName));
    $('#tblData').append(tr);
  })
}