【发布时间】:2013-07-17 23:27:04
【问题描述】:
我有以下html结构:
<ul class="products">
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
</ul>
我有以下 jquery:
$(".products li:nth-child(4)").addClass("last");
如您所见,上面将在每 4 个 <li> 添加一个 last 类。
但是在我的 HTML 中可能有一个隐藏的 <li> 通过 jquery 使用 display:none;。
有没有办法跳过隐藏元素?所以理论上我应该有以下几点:
<ul class="products">
<li><a href="#"></a></li>
<li style="display:none;"><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li class="last"><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li class="last"><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
</ul>
【问题讨论】:
-
你看过 .not() 吗?
-
:visible和:not()不会影响:nth-child()。恐怕你将不得不each()你的方式取模4。 -
您对该选择器如何工作的结论是错误的。它不会选择类产品元素内的每 4 li;它只会选择第 4 里。
-
@jeff,好的,但我们假设提问者的意思是
4n。仍然不会考虑元素可见性。
标签: jquery css-selectors