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

JavaScript performance comparison

Revision 145 of this test case created by Ilya B

Preparation code

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<article>
	<p>A test</p>
	<p><ins></ins></p>
	<p>This is text</p>
	<ins>
		<p>A test</p>
		<p><ins></ins></p>
		<p>This is text</p>
		<ins>
			<p>A test</p>
			<p><ins></ins></p>
			<p>This is text</p>
			<ins>
				<p>A test</p>
				<p><ins></ins></p>
				<p>This is text</p>
				<ins>
					<p>A test</p>
					<p><ins></ins></p>
					<p>This is text</p>
					<ins>
						<p>A test</p>
						<p><ins></ins></p>
						<p>This is text</p>
							<ins>
								<p>A test</p>
								<p><ins></ins></p>
								<p>This is text</p>
							</ins>
					</ins>
				</ins>
			</ins>
		</ins>
	</ins>
	<ins>
		<p>A test</p>
		<p><ins></ins></p>
		<p>This is text</p>
		<ins>
			<p>A test</p>
			<p><ins></ins></p>
			<p>This is text</p>
			<ins>
				<p>A test</p>
				<p><ins></ins></p>
				<p>This is text</p>
				<ins>
					<p>A test</p>
					<p><ins></ins></p>
					<p>This is text</p>
					<ins>
						<p>A test</p>
						<p><ins></ins></p>
						<p>This is text</p>
							<ins>
								<p>A test</p>
								<p><ins></ins></p>
								<p>This is text</p>
							</ins>
					</ins>
				</ins>
			</ins>
		</ins>
	</ins>
</article>
      
<script>
Benchmark.prototype.setup = function() {
  var $article = $('article');
  var article = $article[0];

};
</script>

Preparation code output

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

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
cascade
var has = $('article ins').length > 0 ? true : false;
pending…
context (no cached)
var has = $('ins', 'article').length > 0 ? true : false;
pending…
context jQuery[0]
var has = $('ins', $article[0]).length > 0 ? true : false;
pending…
context jQuery
var has = $('ins', $article).length > 0 ? true : false;
pending…
context node
var has = $('ins', article).length > 0 ? true : false;
pending…
find method (jquery context)
var has = $($article).find('ins').length > 0 ? true : false;
pending…
find method (node context)
var has = $(article).find('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.

0 Comments

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

A test

This is text

A test

This is text

A test

This is text