我想在每个keyup上搜索json数据。
JSON:
{
"AB01": {
"foo": "bar",
"ID": "A1",
"PID": "Z09",
},
"AB10": {
"foo10": "bar10",
"ID": "B10",
"PID": "Y08",
},
}
的jQuery
$('input').on('keyup', function(){
$.getJSON("ABc.json", function(data) {
var InputVal = $('input').val();
var myExp = new RegExp(InputVal, "i");
var results = [];
$.each(data, function(key, obj){
if (obj.foo.search(new RegExp(InputVal,"i")) != -1) {
results.push(obj);
}
});
for(var i=0; i< $(results).length; i++)
{
console.log(JSON.stringify(results[i]));
}
});
});
HTML
<input type="text" name="abc">
现在我希望json中的input string\char
on every keyup
匹配数据不是foo
或ID
,而是所有键和值。
我找不到如何解决这个问题,感谢任何帮助。
如果你想要的任何东西让我知道:)
提前致谢。
答案 0 :(得分:0)
您正在尝试对对象进行字符串比较。
您需要对这些对象的每个属性进行内部迭代。
var basepath="http://192.168.43.88:3000";// Put your servers ip address here. if connecting to local server use 'http' and if to remote server use 'https'
$(document).ready(function(){
$("#mybtn").click(function(e){
$.ajax({
type:"GET",
url:basepath+"/bots",
success:function(data,status,request){
//success action
},
error: function(error){
//failuer action
},
timeout:5000
});
});
您可以使用其他数组方法,例如filter(),但我保留的格式与当前代码的格式相同
另请注意,您应该提前加载数据,这样您每次都不需要请求