如何为没有 link 的数字列表元素编写 jQuery 选择器
How write jQuery selector for numeric list elements without link
我必须在 jQuery 中编写一个特定的选择器,它必须选择数字列表中的所有元素(给定 class "a")具有 class "b" 里面没有链接。他们给了他们一定的class(给了他们一定的格式)。
例如,对于这样的列表:
<ol class="a">
<li><a href="https://whosebug.com/">List element</a></li>
<li class="b"><a href="https://whosebug.com/">List element</a></div></li>
<li class="b">List element</a></li>
</ol>
只有最后一个元素应该得到 class。
尽管当我尝试这样做时:
$('ol.a li.b:not(a)').addClass('someclass');
然后第二个元素也得到 class。
我也尝试在“:not(a)”之前用 space 来做到这一点,但是这样一来什么也得不到 class。
这是您要找的吗?我想我明白你在问什么。如果不是,请告诉我,以便我修改我的答案。 :)
本质上 'ol.a li.b:not(:has(a))'
意味着搜索 class 为 a
的有序列表,以及 class 为 [ 的任何后代 li
项目=16=] 没有 任何 children 是锚 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://whosebug.com/">First</a></li>
<li class="b"><a href="https://whosebug.com/">Second Element</a></li>
<li class="b">Shouldn't Be Included</li>
</ol>
我必须在 jQuery 中编写一个特定的选择器,它必须选择数字列表中的所有元素(给定 class "a")具有 class "b" 里面没有链接。他们给了他们一定的class(给了他们一定的格式)。
例如,对于这样的列表:
<ol class="a">
<li><a href="https://whosebug.com/">List element</a></li>
<li class="b"><a href="https://whosebug.com/">List element</a></div></li>
<li class="b">List element</a></li>
</ol>
只有最后一个元素应该得到 class。
尽管当我尝试这样做时:
$('ol.a li.b:not(a)').addClass('someclass');
然后第二个元素也得到 class。
我也尝试在“:not(a)”之前用 space 来做到这一点,但是这样一来什么也得不到 class。
这是您要找的吗?我想我明白你在问什么。如果不是,请告诉我,以便我修改我的答案。 :)
本质上 'ol.a li.b:not(:has(a))'
意味着搜索 class 为 a
的有序列表,以及 class 为 [ 的任何后代 li
项目=16=] 没有 任何 children 是锚 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://whosebug.com/">First</a></li>
<li class="b"><a href="https://whosebug.com/">Second Element</a></li>
<li class="b">Shouldn't Be Included</li>
</ol>