Jquery根据用户输入选择包含多个类的元素

Jquery select an element containing multiple classes with based on user input

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
jQuery multiple class selector

我有一个输入字段"Q",用户可以在其中键入搜索查询并返回一组类与之匹配的列表项。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function queryData() {
   q = $('#q').val();
   q = q.toLowerCase();
   var qs = q.split(' ');
   $('.item').fadeOut(300);
   for (n in qs)        {
   $("li[class*='" + qs[n] +"']").fadeIn(1000);
                }
}
<li class="apple">
</li>
 <li class="apple banana">
</li>
 <li class="banana">
</li>

我不是专家,所以上面的代码可能看起来很粗糙。到目前为止,上面的代码只能显示李的类与查询匹配,而不管查询中的单词数是多少。所以,如果我输入"apple banana",任何以apple或banana为类的li都将fadein()。如何编辑此函数,以便只有类中同时包含apple和banana的li将fadein()?


如何选择具有多个类的元素?

也试试这个:< PRE>函数querydata()。{$('.item').fadeout(300);美元("li."+(美元(‘Q’)Val.().tolowercase()。.split(/s+/).join(".")))法登(1000);}[/cc]


我将使用术语列表构建一个查询,例如

1
2
3
4
5
var qs = q.split(' ');
for (n in qs) {
    qs[n] = 'li.' + qs[n];
}
$(qs.join(', ')).fadeIn(1000);

这将在任何一个"li"中淡入任何一个类。

引用的jquery多类选择器只匹配包含所有类的元素

编辑:刚刚看到您的编辑(需要所有类)。在这种情况下,试试看

1
$('li.' + q.replace(' ', '.')).fadeIn(1000);