另一个jQuery的事情,我正在摸不着头脑。 我有一些使用jQuery打开和关闭的浮动div(如下所示)。 我需要在不具有显示样式的每个第三个子元素之后追加一些位:无。
<div class="ItemList">
<div class="Item">A</div>
<div class="Item" style="display:none;">B</div>
<div class="Item">C</div>
<div class="Item">D</div>
<div class="Item" style="display:none;">E</div>
<div class="Item">F</div>
<div class="Item">G</div>
<div class="Item">H</div>
<div class="Item">I</div>
<div class="Item" style="display:none;">J</div>
<div class="Item">K</div>
<div class="Item">L</div>
<div class="Item">M</div>
<div class="Item">N</div>
</div>
我想出了这个但是不对!
$(".Item[style*='display: block']:nth-child(3n)").after("<div class='Clear'></div>");
有什么想法吗?!
答案 0 :(得分:2)
您可以使用:visible
选择器:
$(".Item:visible:nth-child(3n)").after("<div class='Clear'></div>");
或:
$(".Item:nth-child(3n):visible").after("<div class='Clear'></div>");
请注意选择器的顺序非常重要。
答案 1 :(得分:1)
在您选择.Item
元素之前或之后,我不确定您是否需要过滤元素。
选择元素后。
$(".Item:nth-child(3n)").filter(function(){
return $(this).css("display") != "none";
}).after("<div class='Clear'></div>");
@undefined也有一个非常好的答案。