我想创建一个搜索框,用于检查输入并查看它是否与城镇名称匹配。
我的数据是这样组织的(虚构数据顺便说一句):
var markers = {
towns: {
"London": {lat: -83.68088192646843, lng: -125.270751953125},
"Paris": {lat: -58.1548020417031, lng: -21.318115234375},
}
}
所以澄清一下:
var query
var results
if (query === results)
做一些事情,例如发出警报感谢。
编辑:
我能够按如下方式进行测试:
$("#search").blur(function() {
var query = $("#search").val();
var results = "hi";
if (query === results) {
alert("booyah");
}
})
这是有效的,但是你可以看到我不知道如何在var results
存储城镇。
编辑#2:这会有用吗?
$("#search").blur(function() {
var query = $("#search").val();
for (var town in markers.towns) {
if (query !== markers.towns[town]) {
alert("booyah");
}
}
})
答案 0 :(得分:0)
首先,您的对象不是数组。 这种情况可能很简单:
var coordinates = (function () {
var markers = {
towns: {
"London": {lat: -83.68088192646843, lng: -125.270751953125},
"Paris": {lat: -58.1548020417031, lng: -21.318115234375},
}
};
return {
find = function (city) {
markers.towns[city] || null;
}
};
})();
find方法将返回您的value对象或null。
答案 1 :(得分:0)
当我运行以下命令时,使用硬编码的查询变量,它可以正常工作:
var markers = {
towns: {
"London": {lat: -83.68088192646843, lng: -125.270751953125},
"Paris": {lat: -58.1548020417031, lng: -21.318115234375}
}
}
var query = "london"; // Test with different capitalization.
for (var town in markers.towns) {
// If the current town name matches the input field (case insensitive)
if (town.toLowerCase() === query.toLowerCase()) {
alert("booyah");
}
}