【发布时间】:2016-05-08 00:39:26
【问题描述】:
我有一个数组members。这个数组有一个名称作为索引(例如“John Smith”)和一个带有“degree”和“id”的数组,如下所示:
我有一个搜索会触发 keyup 操作。它应该搜索成员名称(索引),然后将任何匹配成员的名称输出到控制台:
function memberSearch(){
var $input = $("#guestsearch>input");
var val = $input.val();
console.log(val);
$.each(members, function(i,v){
if(i.indexOf(val)>-1){
console.log(members[i]);
}
})
}
但是,除了搜索值val 之外,它不会输出任何内容。即使$.each 函数只是console.log(i),也没有任何输出。
如果我在控制台手动输入console.log(members),上面的截图就是结果。
members 由函数的这一部分填充:
$.each(json.response.data[0].members, function(i,v){
var m = json.response.data[0].members[i];
var name = m.name;
if(name.typeof!=="undefined"&&name!=""&&name!=null&&name.length>0){
members[name] = [];
members[name]["degree"] = m.degree;
members[name]["id"] = m.id;
}
})
我怎样才能使这个搜索工作?
【问题讨论】:
-
你在哪里定义成员?
-
@JordanHendrix 在任何函数之外 -
var members = [];,然后由另一个函数填充 -
可以在会员搜索中登录会员吗?
-
members是一个数组吗?好像你在描述一个普通的对象。代码在哪里?您是否尝试将非索引名称放在数组上?如果是这样,$.each将忽略它们。 -
@squint 道歉 - 我已经改变了问题。在这种情况下,如果索引是使用
indexOf的字符串(成员名称),我该如何搜索?
标签: javascript jquery arrays