Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery在具有样式display:block的第n个子元素之后追加元素_Jquery_Css Selectors - Fatal编程技术网

jQuery在具有样式display:block的第n个子元素之后追加元素

jQuery在具有样式display:block的第n个子元素之后追加元素,jquery,css-selectors,Jquery,Css Selectors,另一件jQuery的事情让我挠头。 我有一些浮动div(如下所示),它们使用jQuery打开和关闭。 我需要在没有显示样式的第三个子元素后追加一些位:none <div class="ItemList"> <div class="Item">A</div> <div class="Item" style="display:none;">B</div> <div class="Item">C</d

另一件jQuery的事情让我挠头。 我有一些浮动div(如下所示),它们使用jQuery打开和关闭。 我需要在没有显示样式的第三个子元素后追加一些位:none

<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>

A.
B
C
D
E
F
G
H
我
J
K
L
M
N
我已经想出了这个,但它是不对的

$(".Item[style*='display: block']:nth-child(3n)").after("<div class='Clear'></div>");
$(“.Item[style*='display:block']:第n个子项(3n)”)。在(“”)之后;

有什么想法吗

我不确定您是否需要在选择
.Item
元素之前或之后过滤元素

在选定图元之后

$(".Item:nth-child(3n)").filter(function(){
     return $(this).css("display") != "none";
}).after("<div class='Clear'></div>");
$(“.Item:n子项(3n)”).filter(函数(){
返回$(this.css(“display”)!=“无”;
}).在(“”)之后;

@undefined也有一个很好的答案。

我不确定您是否需要在选择
.Item
元素之前或之后过滤元素

在选定图元之后

$(".Item:nth-child(3n)").filter(function(){
     return $(this).css("display") != "none";
}).after("<div class='Clear'></div>");
$(“.Item:n子项(3n)”).filter(函数(){
返回$(this.css(“display”)!=“无”;
}).在(“”)之后;

@undefined也有一个很好的答案。

您可以使用
:visible
选择器:

$(".Item:visible:nth-child(3n)").after("<div class='Clear'></div>");
$(“.Item:visible:nth child(3n)”)。在(“”)之后;
或:

$(“.Item:n子项(3n):可见”)。在(“”)之后;

请注意选择器的顺序很重要。

您可以使用
:visible
选择器:

$(".Item:visible:nth-child(3n)").after("<div class='Clear'></div>");
$(“.Item:visible:nth child(3n)”)。在(“”)之后;
或:

$(“.Item:n子项(3n):可见”)。在(“”)之后;

请注意,选择器的顺序很重要。

这和@undefined在某种程度上都起作用,但我得到了一些非常奇怪的结果,前几组三个都很好,但随后它变得有点疯狂,几乎随机地插入附加的html(我肯定不是这样)。我只是想玩一玩,看看有什么不对劲……创建一个JSFIDLE,我们就可以完成你要找的东西。这个和@undefined在某种程度上都可以完成,但我得到了一些非常奇怪的结果,前几组三人工作很好,但随后它有点疯狂,几乎随机地插入附加的html(我肯定不是).只是想玩一玩,看看有什么不对…创建一个JSFIDLE,我们就可以完成您要找的内容。我猜我需要选择可见的孩子,然后检查是否是第三个孩子,而不是相反?这些答案和@JoeFletch都很好,但我得到了奇怪的结果。有一个我想我需要选择那些可见的孩子,然后检查它是否是第三个孩子,而不是第三个孩子?这些答案和@JoeFletch的答案都很好,但我得到了奇怪的结果。对它们进行修补,看看我是否能在此时使用它!