这里的大部分答案是从对象到列表的内容。我需要走另一条路。这是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"">Apiculture</label>
</li>
<li class="category">
<input class="input_category" id="Barns & buildings" type="checkbox" name="Barns & buildings">
<label for="Barns & buildings"="">Barns & buildings</label>
<ul class="subCategories">
<li class="subcategory">
<input class="subCategory" id="Operations" type="checkbox" name="Operations">
<label for="Operations"">Operations</label>
</li>
<li class="subcategory">
<input class="subCategory" id="Storage" type="checkbox" name="Storage">
<label for="Storage"">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"">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"">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中我可以相对轻松地创建查询。每个伪线都可以组成单独的过滤查询。
欢迎任何想法 - 甚至是新的方式来做所需的事情。
感谢。