好的......我有以下设置:
一个div有n个div作为孩子(n很大)。我需要隐藏/删除(并不重要 - 我认为删除更好,但如果你有意见,这里有帮助)第3,第4,第5,第6,第9,第10,第11,第12,第15,第16,等等(n + 1模6> 1 - 0和1不会被隐藏)。
什么是更快: 获取父div子项并使用逻辑隐藏div:
childrenArray = document.getElementById('id').childNodes;
lng = childrenArray.length;
for (i = 0; i < lng; i++)
if (i % 6 > 1)
// Remove here.
或者将类添加到所需节点并检查它。 jQuery类选择器(或手写脚本实际上更快),然后删除。
注意:在你说jQuery类选择器之前,最好考虑仍然检查数组。
那么基本上什么是更快地检查元素属性或进行数学运算和比较?
答案 0 :(得分:1)
父类+ css规则是最快的方法,但你最好测试它。
.hide-all-but-each-6th * { display:none }
.hide-all-but-each-6th *:nth-child(6n) { display: block }`
答案 1 :(得分:1)
不太确定,但我认为第一个选项会更快,因为如果你向一个元素添加一个class属性,那么jquery选择器将不得不查看整个文档,因为多个元素可以有相同的类,所以它必须遍历整个文档。
但在第一种情况下,如果找到所需的潜水,则无需查看整个文档。这样会更快。 您还可以使用 id 属性来选择所需的元素。