0

入力をチェックして、町の名前と一致するかどうかを確認する検索ボックスを作成したいと考えています。

私のデータは次のように編成されています(架空のデータbtw):

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");
        }           
    }
})
4

2 に答える 2

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");
    }
}
于 2012-06-26T13:58:46.053 に答える
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 メソッドは値オブジェクトまたは null を返します。

于 2012-06-26T11:47:47.337 に答える