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