Skip to content

Instantly share code, notes, and snippets.

@korvus
Last active November 20, 2015 15:56
Show Gist options
  • Save korvus/7fafcf8ceefb9a6c0b46 to your computer and use it in GitHub Desktop.
Save korvus/7fafcf8ceefb9a6c0b46 to your computer and use it in GitHub Desktop.
This script get all class and Id from a HTML view, and warn how many nodes match the "ruleCSS" regex patern. Here, will return all class & Id containing at least one or more capitalized letter. After actionnated, it throw up a confirm dialog, for display on your page the elements the regex targeted.
/*jshint esnext: true */
/*
* License MIT
*/
(function () {
"use strict";
var all = document.querySelectorAll("*");
var i = 0;
var it = 0;
var rootClassName = "";
var IdName = "";
var arrayOfClass = [];
var allSelectors = [];
var matched = [];
var ruleID = /^[0-9a-z\-]+$/;
var ruleCSS = /^[0-9a-z\- ]*$/;
var ruleCSS = /[A-Z_0-9]+/;
var allClass = "";
function displayNodes(){
allSelectors.map(
function(selector){
if(selector.aclass){
allClass = document.querySelectorAll("."+selector.aclass);
for (it = 0; it < allClass.length; it++) {
allClass[it].style.outline = "1px solid #090";
}
}else{
document.querySelector("#"+selector.anID).style.outline = "1px solid #00f";
}
}
);
}
function add(rootClassName,IDclassName){
if(IDclassName){
if(ruleCSS.test(IDclassName)){
allSelectors.push({"anID":IDclassName});
}
}
if(rootClassName){
arrayOfClass = rootClassName.toString().split(" ");
arrayOfClass.filter(t=>ruleCSS.test(t)).map(a=>allSelectors.push({"aclass":a}));
}
}
function forLog(selector){
if(selector.aclass){
matched.push("Class: "+selector.aclass);
}
if(selector.anID){
matched.push("ID: "+selector.anID);
}
}
while (all[i]){
rootClassName = (typeof all[i].className == "object") ? all[i].className.baseVal : all[i].className;
IdName = all[i].getAttribute("id");
add(rootClassName,IdName);
i++;
}
allSelectors.map(registered=>forLog(registered));
var mssg = matched.length + " className and/or ID match with your regular expression \n" + matched.join("\n") + "\nDo you wish see them on the page?";
console.log("/n ============================== /n");
console.log(mssg);
console.log("/n ============================== /n");
var displayNodesInstruction = confirm(mssg);
if(displayNodesInstruction){
displayNodes();
}
})();
/*
bookmark:
(function(){"use strict";var all=document.querySelectorAll("*");var i=0;var it=0;var rootClassName="";var IdName="";var arrayOfClass=[];var allSelectors=[];var matched=[];var ruleCSS=/[A-Z_0-9]+/;var allClass="";function displayNodes(){allSelectors.map(function(selector){if(selector.aclass){allClass=document.querySelectorAll("."+selector.aclass);for(it=0;it<allClass.length;it++){allClass[it].style.outline="1px solid #090"}}else{document.querySelector("#"+selector.anID).style.outline="1px solid #00f"}})}function add(rootClassName,IDclassName){if(IDclassName){if(ruleCSS.test(IDclassName)){allSelectors.push({"anID":IDclassName})}}if(rootClassName){arrayOfClass=rootClassName.toString().split(" ");arrayOfClass.filter(t=>ruleCSS.test(t)).map(a=>allSelectors.push({"aclass":a}))}}function forLog(selector){if(selector.aclass){matched.push("Class: "+selector.aclass)}if(selector.anID){matched.push("ID: "+selector.anID)}}while(all[i]){rootClassName=(typeof all[i].className=="object")?all[i].className.baseVal:all[i].className;IdName=all[i].getAttribute("id");add(rootClassName,IdName);i++}allSelectors.map(registered=>forLog(registered));var mssg=matched.length+" className and/or ID match with your regular expression \n"+matched.join("\n")+"\nDo you wish see them on the page?";console.log("/n ============================== /n");console.log(mssg);console.log("/n ============================== /n");var displayNodesInstruction=confirm(mssg);if(displayNodesInstruction){displayNodes()}})();
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment