如何为没有链接的数字列表元素编写jQuery选择器

问题描述 投票:0回答:1

我必须在jQuery中编写一个特定的选择器,它必须选择数字列表中的所有元素(具有给定的类“ a”),该列表具有类“ b”且内部没有链接。他们给他们一定的阶级(这给他们一定的格式)。

例如,此类列表的示例:

<ol class="a">
    <li><a href="https://stackoverflow.com/">List element</a></li>
    <li class="b"><a href="https://stackoverflow.com/">List element</a></div></li>
    <li class="b">List element</a></li>
</ol>

仅最后一个元素应获得该类。

尽管我尝试这样做:

$('ol.a li.b:not(a)').addClass('someclass');

然后第二个元素也获得该类。

我也试图用“:not(a)”之前的空格来做到这一点,但是这样一来,没有东西可以得到那个类。

jquery-selectors
1个回答
0
投票

这是您要找的吗?我想我明白您的要求。如果不是,请告诉我,以便我修改答案。 :)

本质上是'ol.a li.b:not(:has(a))'表示要搜索类别为a的有序列表,而任何后代li项是类别为b的项,其中[[没有具有any个子代是锚点a

const nonLinks = $('ol.a li.b:not(:has(a))'); nonLinks.addClass("red");
.red {
  color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ol class="a">
        <li><a href="https://stackoverflow.com/">First</a></li>
        <li class="b"><a href="https://stackoverflow.com/">Second Element</a></li>
        <li class="b">Shouldn't Be Included</li>
</ol>
© www.soinside.com 2019 - 2024. All rights reserved.