自动完成功能,用于按属性搜索 json 对象
Autocomplete functionality to search through json object by attribute
假设我有以下json对象,其中包含有关一组人的信息。
data=[{id:2, fname:"bob", lname:"roberts", common_name:null, email:"sideshowbob@email.com", telephone:"555-555-5555", street:"333 Street St", city:"Salt Lake City", state:"UT", country:null, zip:"99999", dynamid:null, notes:null, director:false, contractor:false, contractor_need_agreement:false, shareholder:false, shares_held:0, company_id:1, created_at:"2016-02-23T10:15:09.339Z", updated_at:"2016-02-23T10:15:09.339Z", officer:false, snapshot:null, sign_term_voting:false, drag_liquidation_approval:false, rofr_consenter:false, investor_councel:false, ir_insured:false, issuer_signing_officer:false, issuer_registered_agent:false, issuer_councel:false, rep_lead_investor:false, rep_investor:false, rep_founder:false},
{id:1, fname:"John", lname:"Smith", common_name:null, email:"john.smith@email.com", telephone:"555-555-5555", street:"333 Street St", city:"Salt Lake City", state:"UT", country:null, zip:"99999", dynamid:null, notes:null, director:false, contractor:false, contractor_need_agreement:false, shareholder:false, shares_held:0, company_id:1, created_at:"2016-02-23T10:15:09.327Z", updated_at:"2016-02-23T10:15:09.327Z", officer:false, snapshot:null, sign_term_voting:false, drag_liquidation_approval:false, rofr_consenter:false, investor_councel:false, ir_insured:false, issuer_signing_officer:false, issuer_registered_agent:false, issuer_councel:false, rep_lead_investor:false, rep_investor:false, rep_founder:false}]
现在我想在文本框中实现某种自动完成功能,该功能搜索每个人的姓名(即fname+" "+lname
)以查找匹配项。 找到匹配项后,它会返回为其找到匹配项的人员或该人员的 ID。
麻烦。 我想我可以把它写出来,我用keyup
触发一个通过对象的循环,显示那些与字符串匹配的名称,并在单击其中一个时返回相应的索引,但这似乎是我正在重新发明轮子。
是否有一种有效/最佳实践的方法来拉动这种功能?
来自此类型提前.js演示在这里:
JSFIDDLE 上的完整代码:
var substringMatcher = function(strs) {
return function findMatches(q, cb) {
var matches, substringRegex;
matches = [];
substrRegex = new RegExp(q, 'i');
$.each(strs, function(i, str) {
var fullname = str.fname + " " + str.lname
console.log(fullname);
if (substrRegex.test(fullname)) {
matches.push(fullname);
}
});
cb(matches);
};
};
相关文章:
- 如何根据数值通过数据属性进行搜索并获得最接近的值
- 在JavaScript中编译搜索后,获取链接到函数的属性标记的Element
- 搜索具有特定属性集的非嵌套节点
- 在 XML 文件中搜索 TestComplete 中的特定属性值
- 使用 CSS3 数据属性进行客户端文本搜索
- 如何在 XML 中搜索特定属性以检索另一个属性
- 在 xml 中搜索属性
- Lodash搜索对象属性并修改值
- Lodash关于使用搜索词和多个属性名称进行筛选的帮助
- 如何在对象中搜索属性
- 遍历HTML结构以搜索属性
- 使用变量搜索窗口中的属性使用'在'中;
- Javascript Regex exec 在向搜索文本添加属性/引号后冻结
- 如何通过 jquery 通配符搜索数据属性的精确包含值
- 自动完成功能,用于按属性搜索 json 对象
- 如何通过某些属性搜索并返回knockout视图模型的元素
- 创建一个字典并按属性搜索
- 使用属性搜索json对象并获取该对象的所有相应属性
- 基于数据属性搜索html元素
- 使用特定属性搜索关注者