Jquery 使用属性选择器从数据属性vis查找关键字
我尝试通过使用jQuery和attr选择器来执行搜索筛选功能,如Jquery 使用属性选择器从数据属性vis查找关键字,jquery,search,attributes,find,selector,Jquery,Search,Attributes,Find,Selector,我尝试通过使用jQuery和attr选择器来执行搜索筛选功能,如 $('p[data-keywords~="'+keywords+'"]') $('p[data-keywords*="'+keywords+'"]') 我的完整代码: function search(keywords) { $('p').removeClass('match'); $('p[data-keywords~="'+keywords+'"]').addClass('match'); $('p[
$('p[data-keywords~="'+keywords+'"]')
$('p[data-keywords*="'+keywords+'"]')
我的完整代码:
function search(keywords) {
$('p').removeClass('match');
$('p[data-keywords~="'+keywords+'"]').addClass('match');
$('p[data-keywords*="'+keywords+'"]').addClass('match');
}
var search_timer;
$("#search").keyup(function() {
var keywords = $(this).val();
clearTimeout(search_timer);
search_timer=setTimeout(function(){
search(keywords);
},1000);
});
看起来不错
但是当数据是数据关键字=“一二三”
时
当我把one-three
放入搜索时,它没有找到
操场:
有什么想法吗?或者更好的主意请告诉我
PS:将找不到具有另一个随机关键字(如
one xxx
)的关键字您的查询将搜索精确匹配,即“one-two-three”中不存在“one-three”
jQuery有一个漂亮的多属性语法,您可以使用它:因此,首先在空格上拆分字符串,然后创建如下选择器:
$('p[data-keywords~="one"][data-keywords~="three"]').addClass('match');
尝试按空格拆分关键字:
function search(keywords) {
$('p').removeClass('match');
var keywords = keywords.split(' ');
for (var i = 0, l = keywords.length; i < l; i++) {
$('p[data-keywords*="'+keywords[i]+'"]').addClass('match');
}
}
函数搜索(关键字){
$('p').removeClass('match');
var关键字=关键字。拆分(“”);
对于(var i=0,l=keywords.length;i
好主意,不管怎样,当我搜索
一个xxx
时将找不到,你能帮助我吗?@Gautam3164onethree
只是一个关键字,所以它不应该选择其中包含onethree
的行。不,你可以看到onethree数据关键字我的搜索函数没有非常固定的规则,如果有人告诉我更好的想法,我会考虑:D@l2aelba如果您搜索one xxx
,所有带有关键字one
或xxx
的行都将匹配。@l2aelba您希望“one xxx”结果匹配吗,是还是否?nei:D,因为xxx是另一个词,不会被找到,这很有效,但我使用。not()
所以在我的真实案例中添加类,不管怎样,现在一切都好了:D