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); |