Test name | Executions per second |
---|---|
Split + filter Classname | 5821.8 Ops/sec |
Trim + replace ClassName | 9503.6 Ops/sec |
No Trim - Replace CLassName | 7192.6 Ops/sec |
<div id="foo" class="bar test space OK"></div>
/*your preparation JavaScript code goes here
To execute async code during the script preparation, wrap it as function globalMeasureThatScriptPrepareFunction, example:*/
async function globalMeasureThatScriptPrepareFunction() {
// This function is optional, feel free to remove it.
// await someThing();
}
let element = document.getElementById("foo");
let i = 1000;
while (i--) {
const classes = element.className.split(/\s+/g)
if (classes.length) {
let selector = `${classes.join('.')}`;
if (selector.endsWith('.')) {
selector = `.${selector.slice(0, -1)}`;
}
}
}
let element = document.getElementById("foo");
let i = 1000;
while (i--) {
let selector = "." + element.className.trim().replace(/\s+/g, '.');
}
let element = document.getElementById("foo");
let i = 1000;
while (i--) {
let selector = "." + element.className.replace(/\s+/g, '.');
if (selector.endsWith('.')) {
selector = selector.slice(0, -1);
}
}