我希望搜索只返回与所有标记匹配的结果(.match jQuery)
我正在运行一些jQuery函数来返回我网站上的搜索结果。基本上,返回的项目与我给对象的某些标记相匹配。我遇到的问题是,我只希望返回与我搜索的所有标记匹配的项目。现在,如果我在搜索框中放置多个标记,它将返回与任何标记匹配的结果。这可能吗 这是我的密码:我希望搜索只返回与所有标记匹配的结果(.match jQuery),jquery,search,match,Jquery,Search,Match,我正在运行一些jQuery函数来返回我网站上的搜索结果。基本上,返回的项目与我给对象的某些标记相匹配。我遇到的问题是,我只希望返回与我搜索的所有标记匹配的项目。现在,如果我在搜索框中放置多个标记,它将返回与任何标记匹配的结果。这可能吗 这是我的密码: var $input = $('#myInput'); $input.on('keyup', search) function myFunction(e) { // Declare variables var $q, $el, t
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 (match) {
$el.show();
break;
} else {
$el.hide();
}
}
})
var$input=$('#myInput');
$input.on('keyup',搜索)
函数myFunction(e){
//声明变量
变量$q,$el,标记,匹配,标记;
$q=e.target.value
var$list=$container.children('li')
如果($q.长度<2){
$list.hide();
返回;
}
console.log('list',$list)
queryTags=$q.split(',').map(tag=>tag.trim())
console.log('tags',tags)
$list.each(函数(索引,el){
$el=$(el)
tags=$el.attr('data-tags'))
对于(var j=0;j
使用every
对标记进行迭代,以检查它们是否都匹配。此外,当您只是检查一个字符串是否包含另一个字符串时,您应该使用。includes
-在使用正则表达式时使用。match
$list.each(function(index, el) {
$el = $(el)
if (queryTags.every(queryTag => tags.includes(queryTag))) $el.show();
else $el.hide();
});
谢谢你。如果你想试试的话,我还有另一个问题。