Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Resolução do desafio

Tive um pouco de dificuldade durante a execução e acabei resolvendo sem o uso de data-attributes e sem alterar o html e css (está comentada no arquivo js). Porém, também fiz a versão mais próxima à disponibilizada pelo instrutor.

**HTML

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

  <button id="botao" >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>

  <div>
    <button id="botaoMostrar">mostrar</button>
    <button id="botaoEsconder">esconder</button>
  </div>

  <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>

  <script src="main.js"></script>
</body>
</html>

CSS

  [data-lista="mostrar"] { 
    display: block; 
  }

[data-lista="esconder"] { 
    display: none;
  }

Javascript

// Resolução sem usar data attributes
/*
const lista = document.querySelector('ul');
const botao = document.querySelector('#botao');


botao.addEventListener('click', () => {
    if (lista.style.display ==='block') {
         lista.style.display ='none';
    } else {
        lista.style.display ='block';
}

})
*/

// Resolução usando data attributes

const lista = document.querySelector('ul');
const botaoMostrar = document.querySelector('#botaoMostrar')
const botaoEsconder = document.querySelector('#botaoEsconder');

botaoMostrar.addEventListener('click', () => {
    lista.setAttribute('data-lista', 'mostrar')
});

botaoEsconder.addEventListener('click', () => {
    lista.setAttribute('data-lista', 'esconder')
});
1 resposta
solução!

Olá Letícia, tudo bem?

Que bom que você conseguiu resolver o desafio mesmo sem utilizar data-attributes e sem alterar o HTML e CSS. É sempre bom tentar resolver as coisas de diferentes maneiras, pois assim podemos aprender ainda mais.

Mas é importante lembrar que o uso de data-attributes é uma técnica muito útil e pode facilitar bastante a manipulação do DOM. No seu código, você utilizou o método setAttribute para alterar o valor do atributo "data-lista" da lista. Isso é uma boa prática, pois permite que você altere o estilo da lista sem precisar mexer no CSS.

Parabéns pela sua dedicação e esforço em resolver o desafio.

Um abraço e bons estudos.