У меня есть выбор страны, который заполняет выбор города, затем добавляется радиус, окружающий определенный город.
var countrySet = new Array;
var citySet = new Array;
var radiusSet = new Array;
var set;
function appendCountry(){
if($.inArray($("#businessCountryTarget option:selected").text(),countrySet) === -1) {
$("#businessDisplayCountryInfo").append($("#businessCountryTarget option:selected").text() + "<br>");
countrySet.push($("#businessCountryTarget option:selected").text());
set = { country: $("#businessCountryTarget option:selected").text()};
}
}
function appendCity(){
if($.inArray($("#businessCityTarget option:selected").text(),citySet) === -1){
$("#cityContainer").append($("#businessCityTarget option:selected").text() + "<br>");
$("#radiusContainer").append($("#businessCityRadius option:selected").text() + "<br>");
citySet.push($("#businessCityTarget option:selected").text(),+'-'+$("#businessCityRadius option:selected").text());
set = {city: $("#businessCityTarget option:selected").text()};
radius = $("#businessCityRadius option:selected").text();
set = {radius: $("#businessCityRadius option:selected").text()};
}
}
function SaveLocations(){
alert(set['country'] + ' - '+ set['city'] +'-'+ set['radius'] +"<br>");
}
В поле предупреждения отображается только последний элемент. другие выглядят как неопределенные.
любая помощь пожалуйста.
Майк
Собственные объекты Javascript представляют собой пары ключевых значений, которые позволяют рассматривать их как карты, что примерно эквивалентно ассоциативным массивам. Таким образом, ваш код, приведенный выше, на самом деле является полностью допустимым javascript.
var set;
set = { country: "England", city: "London", radius: "10 miles" };
вы можете получить доступ к значениям с помощью
set["country"] //"England"
или
set.city //"London"
В JS есть ассоциативные массивы. Вы просто сделали бы:
var myarray = { "key": "Value" }
пока вы заявляете:
var x = []; // you actually don't need new Array()
вы можете рассматривать x как ассоциативный массив
x.a = 10;
Это эквивалентно
var x = {a: 10};
Так...
x.a == 10; // true
x['a'] == 10; // true