假设一个节点有任意数量的兄弟姐妹,并且我想选择该节点的nth sibling,是否应该使用链接了n次的.next(),还是应该只调用一次.nextAll(':eq(n-1)')

对于大的n来说,前者似乎会有很多额外的开销,而对于大量的兄弟姐妹,后者可能会有更大的开销。我担心涉及n = 2和大量同级的情况,因此我不确定是否要使用.next().next().nextAll(':eq(1)')。有关系吗?

编辑:对于n = 2和许多同级的情况,根据http://jsperf.com/next-next-vs-nextall-eq-1-vs-nextall-eq-1看来.next().next()最快

最佳答案

以下是一些测试用例,可让您大致了解:


http://jsperf.com/next-vs-nextall-frist/2
http://jsperf.com/nextall-first-vs-nextuntil-last-next


比较有趣的是next()与getelementbyid的比较:


http://jsperf.com/next-vs-document-getelementbyid/2


您可以采用任何这些测试用例,并添加自己的其他测试。

08-19 03:45