【发布时间】:2014-11-21 21:29:07
【问题描述】:
给定一个具有许多 div 子级的 div,以及一个运行时派生编号 ChildrenPerRow,我如何选择每个“虚拟”行中不是该虚拟行上最后一个元素的所有子级?
例如,如果ChildrenPerRow = 5,则选择器应返回第1、2、3、4、6、7、8、9、11、12、13、14等。如果ChildrenPerRow = 4,选择器应返回返回第 1、2、3、5、6、7、9、10、11、13、14、15 等。
我尝试过使用类似的东西:
var FilterStr = '';
for(var i=1; i<ChildrenPerRow;i++){
FilterStr+=':nth-child('+i+'n),';
}
FilterStr = FilterStr.replace(/(^,)|(,$)/g, "");
$Children.filter(FilterStr).doSomething();
这会产生一个像这样的选择器:
:nth-child(1n),:nth-child(2n),:nth-child(3n),:nth-child(4n)
但这会选择每个孩子。我也觉得使用外观构建选择器字符串效率低下。我认为这可以使用非选择器来完成,但我也想知道如何使用正选择器来完成。
所以问题是,什么是实现此目的的有效方法?
【问题讨论】:
标签: javascript jquery