У меня есть функция поиска на моем веб-сайте, где пользователь может искать различные ключевые слова, а затем объекты с этими тегами будут отображаться под строкой поиска. Моя проблема в том, чтобы я возвращал только результаты, соответствующие всему слову. Прямо сейчас, если я ищу «мужской», например, он вернет результаты, которые также имеют «женский», потому что это часть слова. Надеюсь, я объяснил это правильно. Вот код:
var $input = $('#myInput');
$input.on('keyup', search)
function myFunction(e) {
// Declare variables
var $q, $el, tags, match, tags;
$q = e.target.value
var $list = $container.children('li')
if ($q.length < 2) {
$list.hide();
return;
}
console.log('list', $list)
queryTags = $q.split(',').map(tag => tag.trim())
console.log('tags', tags)
$list.each(function(index, el) {
$el = $(el)
tags = $el.attr('data-tags')
for (var j = 0; j < queryTags.length; j++) {
match = tags.match(queryTags[j])
if (queryTags.every(queryTag => tags.includes(queryTag)))
$el.show();
else $el.hide();
}
})