Test case details

Preparation Code

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <ul class="root-ul"><li><a class="link word" href="#word">word</a> </li><li><a class="link glass" href="#glass">glass</a> </li><li><a class="link lorum" href="#lorum">lorum</a> </li><li><a class="link ipsum" href="#ipsum">ipsum</a> </li><li><a class="link dolor" href="#dolor">dolor</a> </li><li><a class="link sit-amet" href="#sit-amet">sit-amet</a> </li></ul>
    window.console && console.log && console.log('nodes:',nodes.length, nodes);

Test cases

Test #1

var root = document.querySelectorAll('ul .link'),     nodes = [], l, i, push = Array.prototype.push; for (i = 0, l = root.length; i < l; i++) {   push.apply(nodes, root[i]); }

Test #2

var root = document.getElementsByTagName('ul'),     nodes = [], l, i, push = Array.prototype.push; for (i = 0, l = root.length; i < l; i++) {   push.apply(nodes, root[i].getElementsByTagName('a')); }

Test #3

var root = document.getElementsByTagName('ul'),     nodes = [], l, i, push = Array.prototype.push; for (i = 0, l = root.length; i < l; i++) {   push.apply(nodes, root[i].getElementsByClassName('link')); }

Test #4

var root = document.getElementsByClassName('root-ul'),     nodes = [], l, i, push = Array.prototype.push; for (i = 0, l = root.length; i < l; i++) {   push.apply(nodes, root[i].getElementsByClassName('link')); }

Test #5

var root = document.getElementsByClassName('root-ul'),     nodes = [], l, i, push = Array.prototype.push; for (i = 0, l = root.length; i < l; i++) {   push.apply(nodes, root[i].getElementsByTagName('a')); }

Test #6

var nodes = jQuery('.root-ul .link');

Test #7

var nodes = jQuery('ul .link');

Test #8

var nodes = jQuery('.root-ul a');