Javascript jQuery筛选方法中的多个条件

Javascript jQuery筛选方法中的多个条件,javascript,jquery,html,Javascript,Jquery,Html,我有以下代码 <div id="MetricsParentModelList"> <ul> <li style=""><a href="#">Hello</a></li> <li style="display:none"><a href="#">Hello world</a></li> <li style="display:non

我有以下代码

<div id="MetricsParentModelList">
   <ul>
      <li style=""><a href="#">Hello</a></li>
      <li style="display:none"><a href="#">Hello world</a></li>
      <li style="display:none"><a href="#">Hello world 123</a></li>
   </ul>
</div>

当任务是根据某些条件向某些元素添加类时,我找不到任何理由使用
filter()
。您可以使用以下方法仅迭代可见的
li

$(“#MetricsParentModelList li:可见”)。每个(函数(){
如果($(this).text().trim()==='Hello')
$(this.addClass('active');
});
.active{
背景色:石灰;
}


您可以使用
:visible
选择器选择visible li的第一个,然后您可以使用
文本tocompare
过滤锚,并将类附加到锚,如:

var TextToCompare='Hello';
$(“#MetricsParentModelList li:可见”).filter(函数(){
返回$('a',this).text().trim()==TextToCompare;
}).addClass(“活动”)
.active{
背景色:石灰;
}


为什么不使用选择器执行此操作<代码>李:可见a
有什么问题?你的代码工作正常。Whatli:visible不起作用@epascarellono,这对我不起作用@Mohammadpurpose?我的意思是为什么我应该使用每一个而不是过滤器?
$("#MetricsParentModelList li a").filter(function() {
    return ($(this).text().trim() === TextToCompare && $(this).parent().display != 'none')
}).parent().addClass('active');