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

151
Visualizações
Mostrar/ocultar filas específicas en la tabla cuando se hace clic en el enlace

Tengo una tabla que contiene categorías de información en cada fila y muchas filas pueden tener la misma categoría.

Tengo un menú de todas las categorías (un menú de texto vertical muy simple en un div).

 <div class="menu"> <a href="">Category 1</a> <a href="">Category 2</a> <a href="">Category 3</a> </div> <table border="1"> <tr id="cat1"> <td>some info</td> </tr> <tr id="cat2"> <td>blah blah</td> </tr> <tr id="cat1"> <td>more blah</td> </tr> </table>

Cuando hago clic en el enlace de una categoría específica en ese menú, quiero que solo muestre las filas que coinciden con esa categoría en la tabla.


Soy nuevo en Javascript, etc., así que sigo aprendiendo. He buscado en Google pero solo puedo encontrar ejemplos que parecen ocultar/mostrar 1 fila o algo similar, pero no lo que necesito que haga. No puedo averiguar si es posible hacer lo que describí anteriormente. ¡Cualquier ayuda será muy apreciada!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Problemas en tu código

  1. Debe identificar las filas de su tabla por categoría.

    • El uso de id para asignar una categoría a varias filas es incorrecto (los valores de ID duplicados son HTML no válido).
    • Puede usar class , pero personalmente prefiero los attributes ya que ese valor está destinado a usarse dentro de JS y no al estilo.
  2. El comportamiento predeterminado de los anchors es redirigir, actualizar (o mover la barra de desplazamiento), para abreviar, este no es el elemento que necesita usar. Lo reemplazaré con un button .

Una solución

 // Selecting all the filters (buttons) document.querySelectorAll('[catFilter]').forEach((el)=>{ //console.log(el); // Listenning to clicks on the filters el.addEventListener('click', (ev)=>{ // Selecting all the table rows when the click happens // This will happen everytime you click! document.querySelectorAll('table tr').forEach((row)=>{ //console.log(row); if(ev.target.value === "*"){ // Show all row.classList.remove('hidden'); }else if(row.hasAttribute(ev.target.value)){ // Make sure that the filtered rows are shown row.classList.remove('hidden'); }else{ // Hide everything else row.classList.add('hidden'); } }) }) })
 .hidden { display: none; }
 <button value="cat1" catFilter>cat1</button> <button value="cat2" catFilter>cat2</button> <button value="*" catFilter>All categories</button> <table border="1"> <tr cat1> <td>some info</td> </tr> <tr cat2> <td>blah blah</td> </tr> <tr cat1> <td>more blah</td> </tr> </table>

over 4 years ago · Santiago Trujillo 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