#javascript
Есть список городов. При вводе данных в строку в списке должны остаться города, которые начинаются с вводимого значения. То есть если я пишу "аб" то у меня должен остаться только абакан, но не набережные челны Балаково Абакан Архангельск Набережные челны Попробовал вот так, но ищет currentdata по всей строке str.toLowerCase().indexOf(currentdata.toLowerCase()); вот моя функция: $('#test').keyup(function() { currenVal = $(this).val().toLowerCase(); $('ul.content>li').each(function(i, el) { if ($(el).text().toLowerCase().indexOf(currenVal) > -1) { $(el).removeClass('hidden'); } else { $(el).addClass('hidden'); } }) }) li.hidden { display: none; }
- Абакан
- Ангарск
- Армавир
- Архангельск
- Астрахань
- Балаково
- Балашиха
Ответы
Ответ 1
$('#test').keyup(function() { currenVal = $(this).val().toLowerCase(); $('ul.content>li').each(function(i, el) { if ($(el).text().toLowerCase().indexOf(currenVal) == 0) { $(el).removeClass('hidden'); } else { $(el).addClass('hidden'); } }) }) li.hidden { display: none; }
- Абакан
- Ангарск
- Армавир
- Архангельск
- Астрахань
- Балаково
- Балашиха
- Набережные чалны
Ответ 2
Зачем такие сложности? Используйте функцию str.startsWith(). Нужно всего-то заменить ($(el).text().toLowerCase().indexOf(currenVal) > -1) на ($(el).text().toLowerCase().startsWith(currenVal))
Комментариев нет:
Отправить комментарий