首页 > 解决方案 > 我希望搜索结果仅在它匹配整个单词而不是它的一部分时才返回(jquery 搜索)

问题描述

我的网站上有一个搜索功能,用户可以在其中搜索不同的关键字,然后带有这些标签的对象将填充在搜索栏下方。我的问题是我只返回与整个单词匹配的结果。现在,例如,如果我搜索“男性”,它将返回也包含“女性”的结果,因为那是该词的一部分。希望我正确地解释了这一点。这是代码:

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();
        }
    })

标签: jquerysearch

解决方案


推荐阅读