JSFiddle - React, Tailwind, and code Playground
HTML
<div class="menuLeft">
<h2>Classes</h2>
<ul class="menuClasses">
<li>
<a href="#" class="itemMenu" id="Disease">+ Disease</a>
<div class="conteudoMenu">
<a href="#" id="name">- name</a>
<a href="#" id="class">- class</a>
</div>
</li>
<li>
<a href="#" class="itemMenu" id="Drug">+ Drug</a>
<div class="conteudoMenu">
<a href="#" id="name">- name</a>
<a href="#" id="indication">- indication</a>
<a href="#" id="metabolism">- metabolism</a>
<a href="#" id="pregnancyCategory">- pregnancyCategory</a>
</div>
</li>
<li>
<a href="#" class="itemMenu" id="GenericDrug">+ GenericDrug</a>
<div class="conteudoMenu">
<a href="#" id="affectedOrganism">- affectedOrganism</a>
<a href="#" id="chemicalFormula">- chemicalFormula</a>
<a href="#" id="genericName">- genericName</a>
</div>
</li>
<li>
<a href="#" class="itemMenu" id="Ingredient">+ Ingredient</a>
<div class="conteudoMenu">
<a href="#" id="name">- name</a>
</div>
</li>
<li>
<a href="#" class="itemMenu" id="SideEffect">+ SideEffect</a>
<div class="conteudoMenu">
<a href="#" id="sideEffectName">- sideEffectName</a>
</div>
</li>
</ul>
</div>
JavaScript
// Pega os valores dos subitens dos menus de acordo com o itens que o usuário for clicando.
var key;
var value;
var mapaDeListas = new Array();
$(".conteudoMenu a").click(function(){
key = $(this).parent(".conteudoMenu").parent("li").find(".itemMenu").attr("id");
value = $(this).attr("id");
Processar();
// Exibe os valores que foram clicados
console.log(mapaDeListas);
});
var Processar = function() {
if (mapaDeListas[key] && $.inArray(value, mapaDeListas[key]) == -1 || mapaDeListas[key] && $.inArray(value, mapaDeListas[key]) != -1) {
// Verifica se já existe a chave vinda do "key" e se o valor de "value" está presente no array
if (mapaDeListas[key].indexOf(value) == -1){
mapaDeListas[key].push(value);
}
}
else {
// Cria o array de acordo com o valor da "key" e adiciona o valor de "value"
mapaDeListas[key] = new Array();
mapaDeListas[key].push(value);
}
}