JSFiddle - React, Tailwind, and code Playground

by JeffC

JavaScript

// from the walmart UAT site

var fg = document.getElementsByClassName("facet-group");
var facetGroups = [];

var name;
var collapsed;
var a;
var s;
var selected;
var disabled;
var li;
var productCount;

for (var i = 0; i < fg.length; i++)
{
    a = fg[i].getElementsByTagName("a");
    name = a[0].innerText.trim();
    collapsed = a[0].className.indexOf("open") === -1;
    facetGroups.push({ Name: name, Collapsed: collapsed, Facets: []});
//    console.log("Name: " + name + ", Collapsed: " + collapsed);

    li = fg[i].getElementsByTagName("li");
    
    for (var j = 0; j < li.length; j++)
    {
        selected = li[j].className.indexOf("facSelected") !== -1;
        disabled = li[j].className.indexOf("fac-deSelected") !== -1;

        s = li[j].innerText.trim().split(/ \(/);
        name = s[0];
        productCount = s[1].slice(0,-1);
//        console.log("-Name: " + name + ", ProductCount: " + productCount + ", Selected: " + selected + ", Disabled: " + disabled);
        facetGroups[i].Facets.push({ Name: name, ProductCount: productCount, Selected: selected, Disabled: disabled });
    }
}

for (i = 0; i < facetGroups.length; i++)
{
    console.log("GroupName: " + facetGroups[i].Name + ", Collapsed: " + facetGroups[i].Collapsed);
    for (j = 0; j < facetGroups.length; j++)
    {
        console.log("  FacetName: " + facetGroups[i].Facets[j].Name + ", ProductCount: " + facetGroups[i].Facets[j].ProductCount + ", Selected: " + facetGroups

[i].Facets[j].Selected + ", Disabled: " + facetGroups[i].Facets[j].Disabled);
    }
}