Javascript 使用hasClass()显示匹配的列表项
JavaScript新手的问题。 我有这样一份清单:Javascript 使用hasClass()显示匹配的列表项,javascript,jquery,Javascript,Jquery,JavaScript新手的问题。 我有这样一份清单: <ul> <li class="class1 class2"> </li> <li class="class3 class4"> </li> <li class="class1 class3"> </li> </ul> 我应该在这里写什么?这不起作用,因为hasClass只检查第一个li返回是否有任何li具有该类。只要这样做: $('li.cla
<ul>
<li class="class1 class2"> </li>
<li class="class3 class4"> </li>
<li class="class1 class3"> </li>
</ul>
我应该在这里写什么?这不起作用,因为
hasClass
只检查第一个li返回是否有任何li
具有该类。只要这样做:
$('li.class3').show()
如果您的情况变得更复杂,另一种书写方式是:
$('li').filter(function() {
return $(this).hasClass('class3');
}).show()
像这样试试
$('li.class3').css('display','block');
if($('li.class3').size()>3)
{
$('li').css('display','block');
}
我认为您可以添加它,并从兄弟姐妹中删除它: 这是最好的办法
$("li").on("click", function(){
$(this)
.addClass("className")
.siblings()
.removeClass("className");
});
这比我的更简单,如果您只需要显示
li
s,则需要选择它。但是如果您想要更复杂的东西,您需要迭代。文档中说,hascaclass
检查所有选定的元素是否有任何元素具有该类。你是对的,它不会有帮助,但它不仅测试第一个;)好的,但是如果我使用的是if
语句,那么如何将处于条件中的元素作为目标呢?比如说,if($('li.class1').hasClass('class3')){…}
如何定位此li?$('li.class1.class3')
。请参阅我的答案以了解更一般的情况solution@Eric:对不起,我的评论应该是针对迈克尔的。你完全按照OP的要求做了。这里的指的是什么?@Feliz:我想是窗户吧!
$('li.class3').css('display','block');
if($('li.class3').size()>3)
{
$('li').css('display','block');
}
$('li').each(function() {
if ($(this).hasClass('class3')){
//Do stuff
}
}).show()
$("li").on("click", function(){
$(this)
.addClass("className")
.siblings()
.removeClass("className");
});