JSFiddle - React, Tailwind, and code Playground
HTML
<div id="div">
<a href="#" class="link">Link</a>
</div>
<div>
<a href="#"class="link">Link</a>
</div>
<br /><br />
<div id="TestResults"></div>
JavaScript
var resultsLog = document.getElementById("TestResults");
var times = 10000;
var start = new Date().getTime();
var i;
resultsLog.innerHTML += "'#id' selector<br />";
for ( i = 0; i < times; i++ ) {
document.getElementById("div");
}
resultsLog.innerHTML += "getElementById :: " + (new Date().getTime() - start) + "<br />";
start = new Date().getTime();
for ( i = 0; i < times; i++ ) {
document.querySelectorAll("#div");
}
resultsLog.innerHTML += "querySelectorAll #id :: " + (new Date().getTime() - start) + "<br /><br />";
resultsLog.innerHTML += "'.class' selector<br />";
start = new Date().getTime();
for ( i = 0; i < times; i++ ) {
document.getElementsByClassName("link");
}
resultsLog.innerHTML += "getElementsByClassName :: " + (new Date().getTime() - start) + "<br />";
start = new Date().getTime();
for ( i = 0; i < times; i++ ) {
document.querySelectorAll(".link");
}
resultsLog.innerHTML += "querySelectorAll .class :: " + (new Date().getTime() - start) + "<br /><br />";
resultsLog.innerHTML += "'tag' selector<br />";
start = new Date().getTime();
for ( i = 0; i < times; i++ ) {
document.getElementsByTagName("div");
}
resultsLog.innerHTML += "getElementsByTagName :: " + (new Date().getTime() - start) + "<br />";
start = new Date().getTime();
for ( i = 0; i < times; i++ ) {
document.querySelectorAll("div");
}
resultsLog.innerHTML += "querySelectorAll tag :: " + (new Date().getTime() - start) + "<br /><br />";
resultsLog.innerHTML += "'tag.class' selector<br />";
start = new Date().getTime();
for ( i = 0; i < times; i++ ) {
var tags = document.getElementsByTagName( "a" );
var res = [];
for ( var j = 0; j < tags.length; j++ ) {
if ( tags[j].className.indexOf( "link" ) > -1 ) {
res.push( tags[j] );
}
}
}
resultsLog.innerHTML += "getElementsByTagName/filter by class :: " + (new Date().getTime() - start) + "<br />";
start = new Date().getTime();
for ( i = 0; i < times; i++ ) {
...