Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

239
Visualizações
¿Cómo crear nombres de clase dinámicos para ul?

Quiero lograr el resultado de que cada ul debe tener nombres de clase diferentes/dinámicos y debe ser único. A continuación se muestra mi código, pero no funciona según las expectativas.

 document .querySelectorAll(".main-nav > .main-nav-list") .forEach((element) => { element.setAttribute("class", `${element.className} hasChild top`); element.querySelectorAll("li > ul").forEach((subElement) => { subElement.setAttribute("class", `${subElement.className} hasChild sub`); }); });
 <nav class="main-nav">  <ul class="main-nav-list">    <li class="a"> <a href="/">First</a>      <ul class="main-nav-list">        <li class="b"> <a href="/">Type of menu</a>          <ul class="main-nav-list">            <li class="c"> <a href="/">Summer</a> </li>            <li class="c"> <a href="/">Winter</a> </li>            <li class="c"> <a href="/">All season</a> </li>            <li class="c"> <a href="/">Spring </a> </li>          </ul>        </li>      </ul>    </li>  </ul> </nav>

Me gustaría tener orientación para resolver esto. ¡Cualquier ayuda será apreciada!

Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

esta es la forma más sencilla de lograr lo que quieres

 var ul = document.querySelectorAll(".main-nav ul") ul.forEach((each,i)=>{ each.classList.add("ul-"+i) })
about 4 years ago · Juan Pablo Isaza Relatório

0

Ahora, en el siguiente fragmento, si marca, puede ver que todas las UL tienen un nombre de clase único. Creé un número aleatorio en el rango y lo agregué con una cadena para hacer como nombre de clase

 var data = document .querySelectorAll(".main-nav .main-nav-list"); data.forEach((element) => { element.setAttribute("class", `list_${parseInt(Math.random() * (1000 - 0) + 0)} hasChild top`); console.log(element.className); });
 <nav class="main-nav">  <ul class="main-nav-list">    <li class="a"> <a href="/">First</a>      <ul class="main-nav-list">        <li class="b"> <a href="/">Type of menu</a>          <ul class="main-nav-list">            <li class="c"> <a href="/">Summer</a> </li>            <li class="c"> <a href="/">Winter</a> </li>            <li class="c"> <a href="/">All season</a> </li>            <li class="c"> <a href="/">Spring </a> </li>          </ul>        </li>      </ul>    </li>  </ul> </nav>

about 4 years ago · Juan Pablo Isaza Relatório

0

Si solo desea cambiar las UL, puede hacerlo

Tenga en cuenta que […spread] es opcional. Los navegadores Edge más antiguos no admiten forEach en una lista de nodos

 [...document.querySelectorAll(".main-nav ul")] .forEach((element,i) => { element.classList.add("hasChild", "top", `c${new Date().getTime()}`); });
 <nav class="main-nav"> <ul class="main-nav-list"> <li class="a"> <a href="/">First</a> <ul class="main-nav-list"> <li class="b"> <a href="/">Type of menu</a> <ul class="main-nav-list"> <li class="c"> <a href="/">Summer</a> </li> <li class="c"> <a href="/">Winter</a> </li> <li class="c"> <a href="/">All season</a> </li> <li class="c"> <a href="/">Spring </a> </li> </ul> </li> </ul> </li> </ul> </nav>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda