不幸的是,这不能用纯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个列表项,忽略它的父级。
答案 0 :(得分:1)
var items = $('#videos li'),
counter = 0, // first element, counting starts at zero
step = 5,
item = null;
while((item = items.eq(counter)).length) {
item.addClass('special'); // or do whatever else with it
counter += step;
}
编辑:或者,通过一个好的'for
循环(这样我们就不必经常调用.length
以查看是否确实存在元素):
var items = $('#videos li'),
start = 0, // first element, counting starts at zero
step = 5;
for(var i=start, l=items.length; i<l; i+=step) {
items.eq(i).addClass('special');
}
答案 1 :(得分:-1)
.css()的结构格式错误。 (有一个:而不是一个,)另外,选择器没有工作,不知道为什么选择器没有按照你的方式工作,但这应该有效。
$( "#videos li:nth-of-type(5n+1)" ).find('img').css( "margin-left","0px");