gpt4 book ai didi

javascript - Jquery 自动完成与响应,作为过滤功能

转载 作者:行者123 更新时间:2023-11-28 05:46:31 25 4
gpt4 key购买 nike

下面我有一些代码,它工作得很奇怪,我的意思是,它什么也不做,我认为:包含函数有一些问题

$(".search").autocomplete({
source: availableTags,
appendTo: ".autocomplete",
minLength:3,

response: function(event, ui) {
var content = ui.content[0].label;
$.each($('.auto-sort'), function() {
var t = $(this);
if (("t:contains(content)")) {
return;
} else {
$(this).parent().parent().parent().hide();
}
});
},
});

主要是,当我在输入字段中输入内容时没有任何反应。我想要一些项目,其部分内容在文本中。

如果我反转某些代码行,此代码会过滤所有项目:

$(".search").autocomplete({
source: availableTags,
appendTo: ".autocomplete",
minLength:3,

response: function(event, ui) {
var content = ui.content[0].label;
$.each($('.auto-sort'), function() {
var t = $(this);
if (("t:contains(content)")) {
$(this).parent().parent().parent().hide();
} else {
return;
}
});
},
});

现在上面的内容可以工作,但它会选择所有项目,例如,如果我在输入字段中键入“tes”,则所有 .auto-sort 项目都会隐藏,但那些不包含内容文本的项目应该可见。

问题出在哪里?感谢您的帮助。

最佳答案

排序的关键是将过滤逻辑更改为:

if($(this).is(':contains('+content+')'))  {

此外,要使 :containes 不区分大小写:

$.expr[":"].contains = $.expr.createPseudo(function(arg) {
return function( elem ) {
return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
};
});

关于javascript - Jquery 自动完成与响应,作为过滤功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38480686/

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