【发布时间】:2015-07-03 19:28:48
【问题描述】:
我有一个 json 数组,其中有一个数据列表。我想创建一个搜索过滤器,它返回与关键字匹配的整行。例如,如果我的 json 数组是这样的:
var data = { "list":[
{
"engine":"Gecko",
"browser":"Firefox 1.0",
"platform":"Win 98+ / OSX.2+",
"version":"1.7",
},
{
"engine":"Tatsman",
"browser":"Firefox 1.5",
"platform":"Win 98+ / OSX.2+",
"version":"1.8",
},
]}
并以表格的形式列出数据
var output="<ul>";
for (var i in data.list) {
output+="<ul>"+"<li id='first'>"+ data.list[i].engine + " " +"</li>"+"<li id='second'>"+ data.list[i].browser +" "+"</li>"+"<li id='third'>"+data.list[i].platform+" "+"</li>"+"<li id='fourth'>" + data.list[i].version + " " +"</li>"+"</ul>";
output+="</ul>";
document.getElementById("lidynamic").innerHTML=output;
}
现在我需要一个返回整行的搜索框。例如,如果我搜索“tatsman”,则应显示包含值“tatsman”的整行。我有几个想法,但都属于 jquery 库。我只需要javascript。
【问题讨论】:
-
实现这一点的最简单方法是遍历您的数组,然后使用正则表达式检查您的单词是否包含在该行的属性之一中,因为它测试每一行,然后它应该集体发送你支持匹配的每一行?
-
ID 必须是唯一的。将它们改为 (
first,second, ...) 类
标签: javascript arrays json