Nurutomo2

HTML Console Tree (+CSS Selector)

May 25th, 2019 (edited)
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Usage: tree(HTML_DOM);
  2.  
  3. function tree(e) {
  4.     if (!e) return
  5.     let className = "." + [...e.classList].join('.')
  6.     if (className == ".") {
  7.         className = "";
  8.     }
  9.     let id = "#" + e.id;
  10.     if (id == "#") {
  11.         id = "";
  12.     }
  13.     let attrNames = e.getAttributeNames().filter(function (name) {
  14.         return !(name == "id" || name == "class");
  15.     });
  16.     let attrValue = new Array(attrNames.length).fill().map(function (a,b) {
  17.         return e.getAttribute(attrNames[b])
  18.     });
  19.     let attr = new Array(attrNames.length).fill().map(function (a,b) {
  20.         if (attrValue[b] == "") {
  21.             return '[' + attrNames[b] + ']';
  22.         } else {
  23.             return '[' + attrNames[b] + '="' + attrValue[b] + '"]';
  24.         }
  25.     }).join("");
  26.     if (e.hasChildNodes()) {
  27.         if (e.tagName.toLowerCase() == "script") {
  28.             console.groupCollapsed(e.tagName.toLowerCase() + className + id + attr);
  29.             console.log(e.innerHTML);
  30.         } else {
  31.             console.group(e.tagName.toLowerCase() + className + id + attr);
  32.             for (let i = 0; i < e.children.length; i++) {
  33.                 tree(e.children[i]);
  34.             }
  35.         }
  36.         console.groupEnd();
  37.     } else {
  38.         if (e.innerHTML == "") {
  39.             console.log(e.outerHTML);
  40.         } else {
  41.             console.groupCollapsed(e.tagName.toLowerCase() + className + id + attr);
  42.             console.log(e.innerHTML);
  43.             console.groupEnd();
  44.         }
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment