Jquery 第n个儿童问题
我正在使用:n子选择器来选择某些元素 案例1:Jquery 第n个儿童问题,jquery,web,selector,css-selectors,Jquery,Web,Selector,Css Selectors,我正在使用:n子选择器来选择某些元素 案例1: <div class='item show'> <div class='item show'> <div class='item show'> <div class='item show'> <div class='item show'> <div class='item show'> <div class='item show'> <div class='i
<div class='item show'>
<div class='item show'>
<div class='item show'>
<div class='item show'>
<div class='item show'>
<div class='item show'>
<div class='item show'>
<div class='item show'>
及
案例2:
<div class='item show'>
<div class='item'>
<div class='item'>
<div class='item show'>
<div class='item'>
<div class='item'>
<div class='item show'>
<div class='item show'>
我的代码从案例1开始,并执行$(“#outerDiv.show:nth child(3n-2)”来选择每三个元素。这很好用。然后,如果用户更改了一些设置,一些元素将丢失其show类并消失在屏幕上,代码如案例2所示。问题是,现在当我执行$('#outerDiv.show:nth child(3n-2)')选择器时,它仍然将其视为案例1,尽管我可以在控制台中清楚地看到它是案例2。我做错什么了吗。对不起,我不能发布实际的代码,所以我举了一个简单的例子
谢谢
第n个子项
选择器将获取所有元素,而不考虑类别
使用$。每个并在循环中分配类
$('#outerDiv .show').each(function(i){
if( i%3 === 0){
$(this).addClass('a');
}
});
我将从关闭div元素开始
而不是
放
下面是一个快速演示,它选择DOM中的每三个(和第一个)元素:
我希望它能有所帮助:)使用和功能:
$('#outerDiv .show').filter(function(){
return $(this).css('display') !== 'none';
}).filter(":nth-child(3n - 2)");
首先,将元素列表筛选为那些没有属性的元素display:none
。接下来,过滤第n个子项 在这种情况下,恐怕您必须手动循环。@avovk-如果这不能解决您的问题,请告诉我,我将尝试想出另一种解决方案。
$('#outerDiv .show').filter(function(){
return $(this).css('display') !== 'none';
}).filter(":nth-child(3n - 2)");