"use strict"; function findIdRoot(element) { let current = element; while (current != null) { if (current.id != null && current.id !== "") { return current; } else { current = current.parentElement; } } } module.exports = function generateSelector(element) { /* FIXME: check that element != null */ let root = findIdRoot(element); let segments = [ (root != null) ? `#${root.id}` : null, (element.classList.length > 0) ? Array.from(element.classList).map((className) => `.${className}`).join("") : element.tagName.toLowerCase() ].filter((segment) => segment != null); return segments.join(" "); // console.log(root); // let className = element.classList.item(0); // if (root === element) { // return `#${root.id}`; // } else if (root != null) { // if (className != null) { // return `#${root.id} .${className}`; // } else { // return `#${root.id} ${element.tagName}`; // } // } else { // return `stuff`; // } };