JSFiddle - React, Tailwind, and code Playground
HTML
<h1>jQuery Selector Performance: Context vs No Context</h1>
<h2>$("div")</h2>
<span id="tagName">---</span> ms<br /><br />
<h2>$(".normal_box")</h2>
<span id="className">---</span> ms<br /><br />
<h2>$("div.normal_box")</h2>
<span id="withClass">---</span> ms<br /><br />
<h2>$("div[normal_box=1]")</h2>
<span id="withAttribute">---</span> ms<br /><br />
<hr />
<div class="normal_box" normal_box = "1">b</div>
<div class="normal_box" normal_box = "1">c</div>
<div class="normal_box" normal_box = "1">a</div>
<div class="normal_box" normal_box = "1">b</div>
<div class="normal_box" normal_box = "1">c</div>
<div class="normal_box" normal_box = "1">a</div>
<div class="normal_box" normal_box = "1">b</div>
<div class="normal_box" normal_box = "1">c</div>
<div class="normal_box" normal_box = "1">a</div>
<div class="normal_box" normal_box = "1">b</div>
<div class="normal_box" normal_box = "1">c</div>
<div class="normal_box" normal_box = "1">a</div>
<div class="normal_box" normal_box = "1">b</div>
<div class="normal_box" normal_box = "1">c</div>
<div class="normal_box" normal_box = "1">a</div>
<div class="normal_box" normal_box = "1">b</div>
<div class="normal_box" normal_box = "1">c</div>
<div class="normal_box" normal_box = "1">a</div>
<div class="normal_box" normal_box = "1">b</div>
<div class="normal_box" normal_box = "1">c</div>
<div class="normal_box" normal_box = "1">a</div>
<div class="normal_box" normal_box = "1">b</div>
<div class="normal_box" normal_box = "1">c</div>
<div class="normal_box" normal_box = "1">a</div>
<div class="normal_box" normal_box = "1">b</div>
<div class="normal_box" normal_box = "1">c</div>
<div class="normal_box" normal_box = "1">a</div>
...
JavaScript
$(document).ready(function(){
startTime = new Date().getTime();
for (i = 0; i < 10000; i++)
{
s = $(".normal_box");
}
$("#className").html(elapsedMilliseconds(startTime));
startTime = new Date().getTime();
for (i = 0; i < 10000; i++)
{
s = $("div");
}
$("#tagName").html(elapsedMilliseconds(startTime));
startTime = new Date().getTime();
for (i = 0; i < 10000; i++)
{
s = $("div.normal_box");
}
$("#withClass").html(elapsedMilliseconds(startTime));
startTime = new Date().getTime();
for (i = 0; i < 10000; i++)
{
s = $("div[normal_box=1]");
}
$("#withAttribute").html(elapsedMilliseconds(startTime));
});
function elapsedMilliseconds(startTime)
{
var n = new Date();
var s = n.getTime();
var diff = s - startTime;
return diff;
}