getElementsByTagname("a")[0] vs. querySelector("a")

JavaScript performance comparison

Revision 4 of this test case created by Scott Sauyet

Preparation code

<ul>
  <li><a href="#">Item</a></li>
  <li><a href="#">Item</a></li>
  <li><a href="#">Item</a></li>
  <li><a href="#">Item</a></li>
  <li><a href="#">Item</a></li>
</ul>
<script>
  var list, result, i, len;
</script>
    

Preparation code output

<ul> <li><a href="#">Item</a></li> <li><a href="#">Item</a></li> <li><a href="#">Item</a></li> <li><a href="#">Item</a></li> <li><a href="#">Item</a></li> </ul>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
Using getElementsByTagName()
list = document.getElementsByTagName("a");
len = list.length;

for (i = 0; i < len; i++) {
 result = list[i];
}
pending…
Using querySelector()
list = document.querySelector("a");
len = list.length;

for (i = 0; i < len; i++) {
 result = list[i];
}
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL.

1 Comment

mina86 commented :

This test is incorrect. querySelector returns only the first element while getElementsByTagName returns all elements. Revision 7 fixes that and gives reverse results.