var InputSort = $('input#sort');
var minlen = 2;
InputSort.bind('keyup',function(){
if(InputSort.val().length>=minlen) {
dosearch();
}
});
function dosearch() {
var term = InputSort.val();
$('.light').each(function(){
$(this).after($(this).html()).remove();
});
t = '';
$('.sorting li').each(function(){
$(this).html($(this).html().replace(new RegExp(term, 'ig'), '<span class="light">$&</span>'));
});
};
ul {padding: 5px;}
li {list-style: none; color: #333;}
.light {color: #f00;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<input type="text" placeholder="Поиск" id="sort">
<ul class="sorting">
<li>Яблоко</li>
<li>Апельсин</li>
<li>Лимон</li>
<li>Дыня</li>
<li>Арбуз</li>
</ul>
В данный момент этот код ищет совпадения в словах и выделяет их.
Как реализовать, что выделение будет идти на <li>
?
const InputSort = document.getElementById('sort');
const minlen = 2;
InputSort.addEventListener('keyup', dosearch);
function dosearch() {
const term = InputSort.value.toLowerCase();
if(term.length < minlen) return true;
[...document.querySelectorAll('.sorting li')].forEach(li => {
if(li.innerText.toLowerCase().includes(term)) li.classList.add('light');
else li.classList.remove('light');
});
};
ul {padding: 5px;}
li {list-style: none; color: #333;}
.light {color: #f00;}
<input type="text" placeholder="Поиск" id="sort">
<ul class="sorting">
<li>Яблоко</li>
<li>Апельсин</li>
<li>Лимон</li>
<li>Дыня</li>
<li>Арбуз</li>
</ul>
Смотрите, вы используете код
$('.sorting li').each(function(){
$(this).html($(this).html().replace(new RegExp(term, 'ig'), '<span class="light">$&</span>'));
});
для поиска элементов, а вызов $.each() - для обработки каждого, причем каждый - ListItem.
Чуть-чуть изменим этот код:
$('.sorting li').each(function(){
if ($(this).html().test(new RegExp(term, 'ig'))) {
// В тексте элемента списка есть то, что мы ищем,
// значит просто помечаем этот элемент списка как выделенный
// и идем пить пиво, потому что сегодня пятница
$(this).addClass("light");
}
});
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могу определить почему при отправке формы делается 2 запроса, если со второго раза отправляешь ту же форму, то получатся идет по одному...
Пытаюсь создать тестовый проект с использованием этой библиотеки, не работает в принципе, вот код индекса и скрипта:
Подключаю require("objectsphp"); - в в этой PHP-ке получаю данные из MYSQL