jQuery .find() vs context, using DOM node as context (v8)

Revision 8 of this benchmark created on


Description

To modify the actual context of a selector (i.e. cause it to not search the default context - the entire document node - but instead scope to only the specified node) the context attribute must be a DOM Node - not a jQuery selector or even a jQuery collection. If a jQuery selector or collection is used, context acts simply as a wrapper for .find (and will therefore always be slower.)

src: http://brandonaaron.net/blog/2009/06/24/understanding-the-context-in-jquery

Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<div id='myDiv'>
        <p>hello <a href="http://www.example.com/"><span id="mySpan">link</span></a></p>
        <p>world <a href="http://www.example.com/"><span id="mySpan">link</span></a></p>
</div>
<script>
  if (!window.console || !window.console.log) {
   throw 'console.log() is not supported. Please install Firebug. http://getfirebug.com'
  }
</script>

Setup

var $myDiv = $("#myDiv"),
        myDiv = $myDiv[0];

Test runner

Ready to run.

Testing in
TestOps/sec
.find()
$myDiv.find('#mySpan');
ready
context
$('#mySpan', myDiv);
ready
straightforward
$('#myDiv #mySpan');
ready

Revisions

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