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

Revision 154 of this benchmark created by Yael on


Preparation HTML

<script src="https://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>

Setup

var $article = $('article');
  var article = $article[0];

Test runner

Ready to run.

Testing in
TestOps/sec
find method (node context)
var has = $(article).find('ins').length > 0 ? true : false;
ready
find method (jquery context)
var has = $($article).find('ins').length > 0 ? true : false;
ready
context node
var has = $('ins', article).length > 0 ? true : false;
ready
context jQuery
var has = $('ins', $article).length > 0 ? true : false;
ready
context jQuery[0]
var has = $('ins', $article[0]).length > 0 ? true : false;
ready
cascade
var has = $('article ins').length > 0 ? true : false;
ready
context (no cached)
var has = $('ins', 'article').length > 0 ? true : false;
ready
find method (jquery context 2)
var has = $article.find('ins').length > 0 ? true : false;
ready

Revisions

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