gpt4 book ai didi

javascript - 具有多个单词的实时搜索过滤器,使用 AND 而不是 OR

转载 作者:行者123 更新时间:2023-12-03 00:51:46 24 4
gpt4 key购买 nike

我有一个实时搜索自动完成过滤器,我用它来清除人员目录。使用此搜索,我希望人们能够使用多个单词进行搜索,这将进一步减少他们获得的结果数量。

目前,使用下面的代码,如果有人搜索“technician Atlanta”,他们将获得包含“technician”和包含“Atlanta”的目录配置文件 div。我想要的是它找到一个包含这两个词的 div...这样他们就可以找到位于亚特兰大的技术人员。希望这是有道理的。

我的代码正在努力单独包含这些术语,但我希望它们找到包含多个术语的行。有任何想法吗?提前致谢!!

$("#filter").keyup(function () {
// Split the current value of the filter textbox
var data = this.value.split(" ");
// Get the table rows
var rows = $(".directoryprofile");
if (this.value == "") {
rows.show();
return;
}

// Hide all the rows initially
rows.hide();

// Filter the rows; check each term in data
rows.filter(function (i, v) {
for (var d = 0; d < data.length; ++d) {
if ($(this).is(":contains('" + data[d] + "')")) {
return true;
}
}
return false;
})
// Show the rows that match.
.show();
});

最佳答案

rows.filter(function(i, v) {
var truth = true;

for (var d = 0; d < data.length; ++d) {
//remain true so long as all of the filters are found
//if even one is not found, it will stay false
truth = truth && $(this).is(":contains('" + data[d] + "')");
}

return truth;
})

//OR you could just flip your logic and return false if any of the
//filters are not found

rows.filter(function(i, v) {
for (var d = 0; d < data.length; ++d) {
if (!$(this).is(":contains('" + data[d] + "')")) {
return false;
}
}

return true;
})

关于javascript - 具有多个单词的实时搜索过滤器,使用 AND 而不是 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53014797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com