No if
vc tem que usar ==
em vez de =
. Isso porque o =
é uma atribuição, e não uma comparação.
Por exemplo, veja este código:
var x = 'abc';
if (x = 'def') {
x = 'ghi';
}
console.log(x); // ghi
Nesse código, ao chegar no if
, a variável x
recebe o valor 'def'
, e este é avaliado no if
. E o JavaScript considera que qualquer string não-vazia é equivalente a true
.
Ou seja, sempre vai entrar nesse if
. Mas se mudar para if (x == 'def')
, aí funciona da forma esperada (só entra no if
se x
for igual a 'def'
).
No seu código é a mesma coisa, não importa o valor do display
, ele sempre entra no if
e muda o display
pra block
.
Outra sugestão. Em vez de tratar isso com JavaScript, por que não usar o [elemento `details`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details)? Ele serve justamente para o que vc está fazendo: ter um texto "detalhes", que ao ser clicado, mostra o texto adicional. Ficaria assim:
```javascript
fetch('https://api.themoviedb.org/3/movie/popular?api_key=307f3bce2cf2642bb1caa0463410a0de&language=en-US&page=1', {
method: 'GET'
})
.then(response => response.json())
.then(function(json) {
let container = document.querySelector('.container');
container.innerHTML = '
- ';
json.results.forEach(function(value) {
container.innerHTML += `
- ${value.title}
detalhes
${value.overview} `;
});
container.innerHTML += '
- ';
for (const value of json.results) {
container.innerHTML += `
- ${value.title}
detalhes
${value.overview} `;
}
container.innerHTML += '
Nossa que massa, não conhecia a details, uma outra forma de resolver o problema. Sou iniciante na programação e estou treinando ainda, mas ajudou bastante!
Tem muita coisa simples que dá pra resolver no próprio HTML, ou com CSS.
Nem sempre precisa de JavaScript.
Ah, só mais uma coisa: vc acabou divulgando sua `api_key` (está na própria URL: `?api_key=etc`). Então agora todo mundo vai poder usá-la.
Eu não vi como é a política de uso desta API, mas veja lá. Se for paga, por exemplo, outras pessoas usarão e a conta vai pra vc.
Se não for paga, ainda sim pode ter limites de uso (X requests por mês, por exemplo), e se tiver mais gente usando, pode acabar com seu limite sem vc saber.
Enfim, sugiro invalidar esta *key* e gerar outra.