【发布时间】:2015-01-24 04:11:54
【问题描述】:
不幸的是,这不能用纯 css 完成,因为 nth-of-type 只选择与元素的父级 (w3schools) 的关系。所以我正在寻找一个适用于多个列表的 jquery 替代方案。
HTML:
<div class="container" id="videos">
<ul class="thumbnails">
<li class="tn">
<img class="tn-img" src="img/thumbnails/placeholder.jpg" />
</li>
<li class="tn">
<img class="tn-img" src="img/thumbnails/placeholder.jpg" />
</li>
<li class="tn">
<img class="tn-img" src="img/thumbnails/placeholder.jpg" />
</li>
<li class="tn">
<img class="tn-img" src="img/thumbnails/placeholder.jpg" />
</li>
</ul>
<ul class="thumbnails">
<li class="tn">
<img class="tn-img" src="img/thumbnails/placeholder.jpg" />
</li>
<li class="tn">
<img class="tn-img" src="img/thumbnails/placeholder.jpg" />
</li>
</ul>
<ul class="thumbnails">
<li class="tn">
<img class="tn-img" src="img/thumbnails/placeholder.jpg" />
</li>
<li class="tn">
<img class="tn-img" src="img/thumbnails/placeholder.jpg" />
</li>
<li class="tn">
<img class="tn-img" src="img/thumbnails/placeholder.jpg" />
</li>
<li class="tn">
<img class="tn-img" src="img/thumbnails/placeholder.jpg" />
</li>
<li class="tn">
<img class="tn-img" src="img/thumbnails/placeholder.jpg" />
</li>
</ul>
</div>
JQUERY
$( "#videos li:nth-of-type(5n+1) img" ).css( "margin-left" , "0px");
此代码仍在选择与其父级(无序列表)相关的 :nth-of-type(5n+1) 。我可以说是因为每个 ul 中的第一个列表项都被选中了。我需要在每个无序列表中选择第 5 个列表项,而不考虑它的父项。
【问题讨论】:
-
在您的情况下究竟是什么不起作用?还是你的问题?
-
我认为您不需要为此使用 jQuery,而是使用 CSS ..
-
.css( "margin-left":"0px")中的语法错误。应该是.css( "margin-left","0px")或.css( {"margin-left":"0px"}) -
修复了语法错误。但它仍然选择 :nth-of-type(5n+1) 与其父级(无序列表)相关。我可以说,因为每个 ul 中的第一个列表项都被选中了。
-
所以只需获取所有
li,循环遍历它们,然后通过增加一个计数器对其中的每五分之一执行您想做的任何事情……
标签: javascript jquery html css css-selectors