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

Ajuda em uma tentativa diferente

Tentei fazer de uma outra forma para treinar meus conhecimentos, mas apenas a primeira parte do texto se altera, a segunda desaparece. Alguém sabe me dizer o porque?

const html = document.querySelector("html");
const focoBt = document.querySelector(".app__card-button--foco");
const curtoBt = document.querySelector(".app__card-button--curto");
const longoBt = document.querySelector(".app__card-button--longo");
const banner = document.querySelector(".app__image");

const titulo1 = document.querySelector(".app__title");
const titulo2 = document.querySelector(".app__title-strong") ;

function alterarTexto (valor1, valor2) {
    titulo1.textContent = valor1;
    titulo2.textContent = valor2; 
}

function alterarContexto (contexto) {
    html.setAttribute("data-contexto", contexto);
    banner.setAttribute("src", `/imagens/${contexto}.png`);
}

focoBt.addEventListener("click", () => {
    alterarContexto("foco");
    alterarTexto("Otimize sua produtividade,", "mergulhe no que importa.")
})

curtoBt.addEventListener("click", () => {
    alterarContexto("descanso-curto");
    alterarTexto("Que tal dar uma respirada?", "Faça uma pausa curta!")
})

longoBt.addEventListener("click", () => {
    alterarContexto("descanso-longo");
    alterarTexto("Hora de voltar à superfície.", "Faça uma pausa longa.")
})
1 resposta
solução!

Olá Turi! Tudo ok contigo?

Pelo que vejo, você tentou uma abordagem um pouco diferente da sugerida na aula. Isso é ótimo para praticar e experimentar novas formas de resolver um problema!

Acredito que o problema está ocorrendo porque você está tentando alterar o texto de dois elementos separados: titulo1 e titulo2. No entanto, no HTML original, esses dois textos estão contidos dentro de uma única tag <h1>, e o segundo texto está envolto por uma tag <strong> para dar a ele um destaque.

Quando você tenta alterar o texto de titulo1 e titulo2 separadamente, a segunda parte do texto desaparece porque a tag <strong> é removida quando você altera titulo1.textContent.

Uma possível solução para isso seria manter a estrutura original do HTML e alterar o texto de uma só vez, assim como foi feito na aula. Aqui está um exemplo de como você poderia fazer isso:

function alterarTexto (valor1, valor2) {
    titulo1.innerHTML = `${valor1} <strong>${valor2}</strong>`;
}

Nesse exemplo, estou usando a propriedade innerHTML em vez de textContent para que a tag <strong> seja interpretada como HTML e não como texto.

No geral, era isso. Espero ter ajudado!

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor marque ele como solução! ✓