jQuery helpers: $all and $one

JavaScript performance comparison

Revision 2 of this test case created by Kyle Simpson

Info

Helpers to make imediate use of querySelector and querySelectorAll

Preparation code

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<div class="level1">
    <div class="level2">
        <div class="level3">
            <div class="level4">
                <div class="level5" id="foo">
                </div>
                <div class="level5">
                </div>
                <div class="level5">
                </div>
            </div>
        </div>
    </div>
</div>
<script>
  if (document.querySelector && document.querySelectorAll) {
   window.$one = function(query, context) {
    return $((context || document).querySelector(query));
   };
 
   window.$all = function(query, context) {
    return $((context || document).querySelectorAll(query));
   };
  }
  else {
   window.$one = function(query, context) {
    return $(query, context);
   };
   window.$all = window.$one;
  }
</script>

Preparation code output

Test runner

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

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
One element without helper
$('.level1 .level2 .level3 .level4 #foo');
pending…
One element with helper
$one('.level1 .level2 .level3 .level4 #foo');
pending…
All elements without helper
$('.level1 .level2 .level3 .level4 .level5');
pending…
All elements with helper
$all('.level1 .level2 .level3 .level4 .level5');
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. Here’s a list of current revisions for this page:

0 comments

Add a comment