什么是更快 - 检查元素属性vs检查元素位置

时间:2012-03-07 09:23:27

标签: javascript performance

好的......我有以下设置:

一个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类选择器之前,最好考虑仍然检查数组。

那么基本上什么是更快地检查元素属性或进行数学运算和比较?

2 个答案:

答案 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 属性来选择所需的元素。