从动态生成的无序列表创建JS对象

时间:2017-06-29 18:47:49

标签: javascript php solr html-lists associative-array

这里的大部分答案是从对象到列表的内容。我需要走另一条路。这是HTML。这只是一个更大的列表的一个子集 - 但它始终是相同的结构,并且只会有三个级别。

<li class="group">

    <input class="group" id="Agriculture" type="checkbox" name="Agriculture">
    <label for="Agriculture">Agriculture</label>

    <ul class="categories">

        <li class="category">
            <input class="input_category" id="Apiculture" type="checkbox" name="Apiculture">
            <label for="Apiculture&quot;">Apiculture</label>
        </li>

        <li class="category">

            <input class="input_category" id="Barns & buildings" type="checkbox" name="Barns & buildings">
            <label for="Barns & buildings"="">Barns &amp; buildings</label>

            <ul class="subCategories">

                <li class="subcategory">
                    <input class="subCategory" id="Operations" type="checkbox" name="Operations">
                    <label for="Operations&quot;">Operations</label>
                </li>
                <li class="subcategory">
                    <input class="subCategory" id="Storage" type="checkbox" name="Storage">
                    <label for="Storage&quot;">Storage</label>
                </li>

            </ul>

        </li>

        <li class="category">

            <input class="input_category" id="Crop handling" type="checkbox" name="Crop handling">
            <label for="Crop" handling"="">Crop handling</label>

            <ul class="subCategories">
                <li class="subcategory">
                    <input class="subCategory" id="Harvest equipment" type="checkbox" name="Harvest equipment">
                    <label for="Harvest" equipment"="">Harvest equipment</label>
                </li>
            </ul>

        </li>

        <li class="category">

            <input class="input_category" id="Dairying" type="checkbox" name="Dairying">
            <label for="Dairying&quot;">Dairying</label>

            <ul class="subCategories">
                <li class="subcategory">
                    <input class="subCategory" id="Test equipment" type="checkbox" name="Test equipment">
                    <label for="Test" equipment"="">Test equipment</label>
                </li>
            </ul>

        </li>

        <li class="category">

            <input class="input_category" id="Land improvement" type="checkbox" name="Land improvement">
            <label for="Land" improvement"="">Land improvement</label>

            <ul class="subCategories">
                <li class="subcategory">
                    <input class="subCategory" id="Miscellaneous" type="checkbox" name="Miscellaneous">
                    <label for="Miscellaneous&quot;">Miscellaneous</label>
                </li>
            </ul>

        </li>

        <li class="category">
            <input class="input_category" id="Poultry equipment" type="checkbox" name="Poultry equipment">
            <label for="Poultry" equipment"="">Poultry equipment</label>
        </li>

    </ul>

</li>

我尝试了许多想法 - 递归函数,foreach循环等等......

这个答案很接近(How to save HTML ul-li structure into javascript object) - 但是它们产生的阵列(在我看来只是)凌乱,而且它并没有完全符合我的需要。

从这个新对象我需要将其发送到php文件以在SOLR中创建过滤器查询。由于上面html中的所有这些项都是相互关联的(它是一个词典)我需要把它放到一个干净的(ish)对象中,所以我可以将它传递给php,这将根据检查的内容创建查询

我需要的是对象的每个&#34;分支&#34; - 这将允许我使用布尔值创建SOLR过滤器查询。

在整个过程结束时,我想要以下内容......

Agriculture => Apiculture
Agriculture => Barns & buildings
Agriculture => Barns & buildings => Operations
Agriculture => Barns & buildings => Storage
Agriculture => Crop Handling
Agriculture => Crop Handling => Harvest Equipment
Agriculture => Dairying
Agriculture => Dairying => Test Equipment
Agriculture => Land Management
Agriculture => Land Management => Miscellaneous
Agriculture => Poultry equipment

这种方式在PHP中我可以相对轻松地创建查询。每个伪线都可以组成单独的过滤查询。

欢迎任何想法 - 甚至是新的方式来做所需的事情。

感谢。

0 个答案:

没有答案