实时搜索localstorage(在数组中搜索)

时间:2013-04-22 11:59:26

标签: javascript jquery arrays search object

这就是我所拥有的: enter image description here

现在我想进行实时搜索。关键是当您在文本框中键入时,您必须在localstorage中搜索与搜索框中的文本相等的内容。所有与dissapears不匹配的数据。

$("#searchbox").keyup(function(){

    // Retrieve the input field text
    var searchtext = $(this).val();

    // Loop through the local storage
    var a = {};
    a = JSON.parse(localStorage.getItem('session'));

    alert(a);
});

你可以看到我发出警报,我的输出是这样的:

{"21114":{"id":"21114","external_id":"","sessiongroupid":"1844","eventid":"5588","order":"0","name":"localStorage
 HTML5 Session","description":"localstorage","starttime":"2013-04-23
 12:00:00","endtime":"2013-04-23
 13:30:00","speaker":"","location":"","mapid":"0","xpos":"0.000000","ypos":"0.000000","maptype":"plan","imageurl":"","presentation":"","organizer":"0","twitter":"","allowAddToFavorites":"0","allowAddToAgenda":"0","votes":"0","url":"","venueid":"0"},"21115":{"id":"21115","external_id":"","sessiongroupid":"1845","eventid":"5588","order":"0","name":"tweede","description":"tweede","starttime":"2013-04-03
 00:00:00","endtime":"2013-04-04
 00:00:00","speaker":"","location":"","mapid":"0","xpos":"0.000000","ypos":"0.000000","maptype":"plan","imageurl":"","presentation":"","organizer":"0","twitter":"","allowAddToFavorites":"0","allowAddToAgenda":"0","votes":"0","url":"","venueid":"0"}}

现在我要搜索名称。有人可以帮我怎么做吗?

2 个答案:

答案 0 :(得分:1)

简单地遍历对象

var json = JSON.parse(localStorage);

for(obj in json) {
    console.log(json[obj].name); //compare this with your "searchtext"
}

打印

localStorage HTML5 Session
tweede

如果.name匹配您想要的任何内容并且可以处理它,您可以简单地检查循环内部。

答案 1 :(得分:0)

试试这个简单的代码

dataArray.filter(function(object) {
   return object.name == new RegExp('text to search', 'gi')
})

使用您想要搜索的密钥更改.name