jQuery .find() vs. context selector vs non-context selector

JavaScript performance comparison

Revision 81 of this test case created by Michael

Info

comparing selector speed

Preparation code

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<p><ins></ins></p>

<article>
        <p>A test</p>
        <p><ins></ins></p>
        <p>This is text</p>
</article>

<p><ins></ins></p>

<article>
        <p>A test</p>
        <p><ins></ins></p>
        <p>This is text</p>
</article>
 

<p><ins></ins></p>

<article>
        <p>A test</p>
        <p><ins></ins></p>
        <p>This is text</p>
        <article>
                <p>A test</p>
                <p><ins></ins></p>
                <p>This is text</p>
                <article>
                        <p>A test</p>
                        <p><ins></ins></p>
                        <p>This is text</p>
                        <article>
                                <p>A test</p>
                                <p><ins></ins></p>
                                <p>This is text</p>
                                <article>
                                        <p>A test</p>
                                        <p><ins></ins></p>
                                        <p>This is text</p>
                                        <article>
                                                <p>A test</p>
                                                <p><ins></ins></p>
                                                <p>This is text</p>
                                                        <article>
                                                                <p>A test</p>
                                                                <p><ins></ins></p>
                                                                <p>This is text</p>
                                                        </article>
                                        </article>
                                </article>
                        </article>
                </article>
        </article>
</article>
               
<article>
        <p>A test</p>
        <div>
                <div>
                        <div>
                                <p><ins></ins></p>
                        </div>
                </div>
        </div>
        <p>This is text</p>
</article>
<script>
Benchmark.prototype.setup = function() {
    var $article = $('article');
    var article = $article[0];
};
</script>

Preparation code output

A test

This is text

A test

This is text

A test

This is text

A test

This is text

A test

This is text

A test

This is text

A test

This is text

A test

This is text

A test

This is text

A test

This is text

Test runner

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

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
$(article).find('ins')
var has = $(article).find('ins').length > 0 ? true : false;
pending…
$($article).find('ins')
var has = $($article).find('ins').length > 0 ? true : false;
pending…
$('ins', article)
var has = $('ins', article).length > 0 ? true : false;
pending…
$('ins', $article)
var has = $('ins', $article).length > 0 ? true : false;
pending…
$('ins', $article[0])
var has = $('ins', $article[0]).length > 0 ? true : false;
pending…
$('article ins')
var has = $('article ins').length > 0 ? true : false;
pending…
$('ins', 'article')
var has = $('ins', 'article').length > 0 ? true : false;
pending…
$('article')
var has = $('article').find('ins').length > 0 ? true : false;
pending…
$('article > ins')
var has = $('article > ins').length > 0 ? true : false;
pending…
$( 'article' + ' ' + 'ins' )
var has = $( 'article' + ' ' + 'ins' ).length > 0 ? true : false;
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