Я новичок в jQuery, но пока добился хороших результатов.
Теперь я пытаюсь определить несколько операторов автозаполнения, связанных с различными полями текстового ввода.
Я вручную создал эти 2, и они работают нормально:
$( "#fromLocation_1" ).autocomplete({
source: strLocations
});
$( "#fromLocation_2" ).autocomplete({
source: strLocations
});
Однако это не работает:
$for(i=0; i<20; i++)
{
$( "#toLocation_"+i ).autocomplete({
source: strLocations
});}
Итак, либо я использую совершенно глупый подход, либо в моем коде есть какая-то базовая ошибка.
Вся помощь оценена по достоинству!
что такое $for? проверьте консоль инструментов разработчика браузера на наличие ошибок
Также #fromLocation не равно #toLocation
Используйте class или другой неуникальный атрибут.
циклический способ вообще не рекомендуется



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Проблема с вашим циклом для функции автозаполнения, по-видимому, связана с синтаксической ошибкой. В jQuery правильный синтаксис цикла for не включает знак доллара ($) перед for.
Вот исправленная версия вашего цикла:
for(var i = 0; i < 20; i++) {
$("#toLocation_" + i).autocomplete({
source: strLocations
});
}<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>УХ ТЫ!! Столько замечательных ответов и так быстро! Любой из ответов можно было отметить как «правильный». Спасибо всем, теперь все работает отлично. Ох ради $ и var ;-)
похоже проблема с синтаксисом, попробуйте.
for (var i = 0; i < 20; i++) {
$("#toLocation_" + i).autocomplete({
source: strLocations
});
}
Этот пример кода, похоже, во многом идентичен коду в двух других ответах. В двух других ответах также содержалась вспомогательная информация, но этот ответ не содержит дополнительной информации.
Чтобы создать цикл в определении функции jQuery для настройки нескольких полей автозаполнения, вы можете использовать стандартный цикл JavaScript for. Ваша попытка почти правильна, но есть пара синтаксических ошибок. Вот как можно правильно определить цикл
for (var i = 0; i < 20; i++) {
$("#toLocation_" + i).autocomplete({
source: strLocations
});
}
Объяснение:
for. Убедитесь, что синтаксис цикла for правильный, с помощью правильных круглых и фигурных скобок.i, используя var, let или const.i.Это отвечает на заданный вопрос, но, к вашему сведению, увеличение идентификаторов обычно считается антишаблоном. $(".location").each(function() { $(this).autocomplete... будет применяться в цикле или (согласно другому ответу) применяться непосредственно ко всей коллекции, без необходимости какого-либо цикла.
@jayesh stackoverflow.com/help/gen-ai-policy
ты можешь сделать это:
$( "#fromLocation_1,#fromLocation_2" ).autocomplete({source: strLocations });