arachnoz,
Я же привел в пост 15 кроссбраузерный вариант со вторым массивом ключей перебираете массив ключей по ключу получаете его подмассив есть варианты с indexOf массивов - но не кроссбраузерно и запутаетесь еще более, поскольку исходную структуру нун тады переделать Оптимально 1-м массивом объекта всегда иметь сам массив ключей |
Deff - да, спасибо, я уже понял, что более короткого пути нет :)
|
arachnoz,
Есть, - есть - но спешить не стоит - это понятный, не сильно увеличивает контент и универсальный, Есть и короче |
В итоге, решил всё вот так.
$(function() { var towns = [ ]; \\ простой массив, передающийся в autocomplete for(i in twns) \\ обходим БД { towns[towns.length]=new Array(i); \\ наполняем массив } $("#from").autocomplete({ source: towns }); \\ передаём в autocomplete $("#to").autocomplete({ source: towns }); alert(towns); }); И что бы вы думали она сказала? Да у тебя же мама педагог... (с) В общем, autocomlpete сказала - хер вам. Окошко выводит с подсказками и даже, судя по сокращению его размеров при вводе городов, выводит города, но только названий их нет :) При том, что если вручную сформировать для неё массив вида towns = ['город', 'другой город']; - всё прекрасно выводится. Алерт при этом сгенеренный массив выводит нормально. Никто не сталкивался с такой бедой? :( |
Поставил Firebug и посмотрел, что выводится. Понял причину.
Фигня в том, что массив у меня получается такого вида, [['город'], ['другой город']] а мне нужно передать в autocomplete ['город', 'другой город'] Подскажите, как обратиться избавиться от лишних скобок в выводе. |
похоже, что надо сделать нормальный массив :) можно скопировать.
|
melky - к сожалению, я не в силах оценить Ваш юмор, т.к. даже не могу понять, чем не нормален этот массив :)
Я пытался сделать из массива строку при помощи join, но, соответственно, autocomplete не хочет принимать строку. Хочу сказать спасибо разработчикам JQuery за два потраченных дня, мне кажется, я бы уже сам написал autocomplete для этого калькулятора за это время. |
Цитата:
Ну косинус же! (с) var twns ={ 'Абакан':['9-12',3150,90,87,83,68,65,62], 'Альметьевск':['5-7',2520,72,69,65,53,50,47], 'Анапа':['4-5',2170,62,60,56,45,42,39] }; for(i in twns){ alert(i); }; |
2 ksa - спасибо большое, это я уже догнал и реализовал. Но теперь я собираю это неправильно в массив :)
|
Цитата:
|
Часовой пояс GMT +3, время: 02:24. |