Javascript 使用hasClass()显示匹配的列表项

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

JavaScript新手的问题。 我有这样一份清单:

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