我有一个函数可以在单击时获取元素的值,然后我想使用它来匹配稍后在脚本中的 Bootstrap 提前输入中使用的数组。例如:
var use = [];
$('.dropdown-menu > li > a').on("click", function() {
use = $(this).data('name');
alert(use);
});
如果选择的数据名称属性是“cat”,那么“use”变量将等于“cat”,并且我们有一个“cat”数组:
var cat = [
{val: 'res', string: "Residential"},
{val: 'Dup', string: "Duplexes & Apartments"},
{val: 'Con', string: "Condominiums"},
{val: 'Lot', string: "Lots, Land & Farms"},
{val: 'Com', string: "Commercial"},
{val: 'Mob', string: "Mobile Homes"},
];
然后我不知道如何处理这个问题。我不想在下面的函数中使用“cat”,而是想将“cat”替换为与上面选择的数据名称匹配的任何函数。
$('#input-tag').typeahead({
source: function(query, process) {
var results = _.map(cat, function(value) {
return value.val;
});
process(results);
}
});
我希望我的解释是正确的。我想我今晚有点超出头脑了!
最佳答案
您可以创建一个对象,其中键是数据源(例如 cat),值是数组:
var obj = {
"cat" : [
{val: 'res', string: "Residential"},
{val: 'Dup', string: "Duplexes & Apartments"},
{val: 'Con', string: "Condominiums"},
{val: 'Lot', string: "Lots, Land & Farms"},
{val: 'Com', string: "Commercial"},
{val: 'Mob', string: "Mobile Homes"}
],
"dog": [ {val: 'res', string: 'Dunno' }]
};
然后你可以通过这种方式获取正确的数组:
var data = $(this).data('name'); // 'cat';
var catArr = obj[data];
关于javascript - 在函数中使用动态选择的数组(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31446044/