Javascript 搜索关键字的DOM遍历未按预期显示?
我试图通过遍历DOM并查找搜索到的单词,在UI中使用JavaScript实现过滤机制。这就是我的HTML和UI的外观。 因此,我们的想法是,一旦数据(是动态的)从后端(通过java)加载,我就想在HTML中遍历DOM,查找他们搜索的特定关键字。这就是我在Jquery中编写JS的方式Javascript 搜索关键字的DOM遍历未按预期显示?,javascript,jquery,dom,Javascript,Jquery,Dom,我试图通过遍历DOM并查找搜索到的单词,在UI中使用JavaScript实现过滤机制。这就是我的HTML和UI的外观。 因此,我们的想法是,一旦数据(是动态的)从后端(通过java)加载,我就想在HTML中遍历DOM,查找他们搜索的特定关键字。这就是我在Jquery中编写JS的方式 $(document).ready(function() { jQuery('#txtSearch').keyup(function(event){ if (event.keyCode =
$(document).ready(function() {
jQuery('#txtSearch').keyup(function(event){
if (event.keyCode == 27) {
resetSearch();
}
if (jQuery('#txtSearch').val().length > 0) {
jQuery('.list-group-item').hide();
jQuery('.list-group-item span.assignee-style:Contains(\'' + jQuery('#txtSearch').val() + '\')').
parent('li').parent('ul').parent('li').show();
}
if (jQuery('#txtSearch').val().length == 0) {
resetSearch();
}
});
function resetSearch(){
jQuery('#txtSearch').val('');
jQuery('.list-group-item').show();
jQuery('#txtSearch').focus();
}
});
我期望的行为是,当我搜索“john”时,我只希望出现包含“john”的数据(在所有3列中)。作为一个开始,我只是以受让人的名字遍历DOM。但结果并不是我想要的。我做错了什么?
.parent
使用选择器,而不仅仅是标记名,所以为什么不简化为:
$(document).ready(function() {
jQuery('#txtSearch').keyup(function(event){
var search = jQuery('#txtSearch').val();
if (event.keyCode == 27) {
resetSearch();
}
if (search.length > 0) {
jQuery('.list-group-item').hide();
jQuery('.list-group-item span.assignee-style:contains(\'' + search + '\')').
parent('.list-group-item').show();
}
else {
resetSearch();
}
});
function resetSearch(){
jQuery('#txtSearch').val('');
jQuery('.list-group-item').show();
jQuery('#txtSearch').focus();
}
});
与
:contains()
选择器的匹配区分大小写。搜索“john”不会找到“john”。True,而且“:contains”本身区分大小写。我注意到OP使用了“:Contains”@user133371我也这么认为,但我试过了,jQuery似乎可以处理“:Contains”很好。你和用户一起回答:上面的Dark Falcon回答对我有效,thxI为区分大小写的jQuery.expr[':']添加了这段代码。Contains=函数(a,I,m){返回jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0;}@pushya应该这样做我猜:)你和用户一起回答:上面的尖刻答案对我有效,thxFirst我尝试了你的答案当我输入User:Pointy时它不起作用,然后它开始工作一些Dom元素有特殊字符,比如[,-当我一看到“-”就键入“um priory”时它没有向我展示任何东西,因为它没有意识到这一点。他们有任何可能的解决办法吗