jQuery过滤器方法中的多个条件

jQuery过滤器方法中的多个条件

我有以下代码

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

我想把类“active”添加到显示不是none的li中。我还必须比较锚标记文本。
我的代码是:
$("#MetricsParentModelList li a").filter(function() {
    return ($(this).text().trim() === TextToCompare && $(this).parent().display != 'none')
}).parent().addClass('active');

最佳答案

您可以首先使用:visible选择器选择可见的li,然后使用TextToCompare筛选锚并将类附加到它们,如:

var TextToCompare = 'Hello';

$("#MetricsParentModelList li:visible").filter(function() {
     return $('a', this).text().trim() === TextToCompare;
}).addClass('active');

.active {
    background-color: lime;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<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>

关于javascript - jQuery过滤器方法中的多个条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52609583/

10-12 03:24