1
resposta

[Projeto] Minha solução - Consolidando o seu conhecimento

HTML

Na minha resolução, eu adicionei um data-attribute no primeiro botão, data-botao="mostrar" , para mostrar a lista. E também, eu criei mais um botão abaixo da lista, com o atributo data-botao="esconder", para esconder a lista.

<!DOCTYPEhtml>
<html lang="en" >
<head>
  <meta charset="UTF-8">
  <title>Manipulando o DOM - Aula 3</title>
  <link rel="stylesheet" href="./style.css">
</head>
<body>

  <button onclick="mostraTintas(this)" data-botao="mostrar">Aluratintas em estoque:</button>

  <ul class="lista">
    <li cor="laranja" tipo="tinta-exterior" class="item">Tinta laranja</li>
    <li cor="vermelho" tipo="tinta-interior" class="item">Tinta vermelha</li>
    <li cor="branco" tipo="tinta-interior" class="item">Tinta branca</li>
    <li cor="amarelo" tipo="tinta-exterior" class="item">Tinta amarela</li>
    <li cor="rosa" tipo="tinta-exterior" class="item">Tinta rosa</li>
    <li cor="preto" tipo="tinta-exterior" class="item">Tinta preta</li>
  </ul>

  <button onclick="mostraTintas(this)" data-botao="esconder">Esconder tintas em estoque</button>

  <a href="https://alura.com.br/" target="_blank"><img src="https://www.alura.com.br/assets/img/home/alura-logo.svg" alt="" class="alura-logo"></a>

</body>
</html>

JS

Um código simples, com a função contendo um if-else. Caso o valor do data-attribute, armazenado na const botao, seja igual a "mostrar", da um display=block para exibir a lista. Sendo um outro valor diferente de "mostrar", da um display=none para esconder a lista.

const lista = document.querySelector(".lista");

function mostraTintas(elemento) {
  const botao = elemento.getAttribute("data-botao");

  if (botao === "mostrar") {
    lista.style.display = "block";
  } else {
    lista.style.display = "none";
  }
}
1 resposta

Olá Roberto, tudo bem?

Excelente!!

Testei sua solução e foi uma ótima lógica que você construiu.

Em caso de dúvidas ou dificuldades, estamos por aqui!

Continue praticando e bons estudos!