Questão nº 80
Questão de Tecnologia da Informação · FGV TCE-SP 2023 (nº 80)
Beatriz tem um site com diversos elementos do tipo div, onde foi utilizada uma classe CSS com o nome "opcional", e deseja que eles fiquem ocultos quando forem clicados. Para adicionar a funcionalidade em todos os elementos via JavaScript, ela desenvolveu a função apresentada a seguir.
```javascript
const associar = (elementos) => {
for(let obj of elementos)
obj.addEventListener('click',(e)=>{
e.target.style.display='none'});
}
```
Para executar a função criada, associando corretamente aos elementos do tipo div, Beatriz deve utilizar para o parâmetro elementos a expressão:
- Adocument.getElementsByTagName("div.opcional");
- Bdocument.getElementsByClassName("opcional"); (alternativa correta)
- Cdocument.getElementsByName("div:opcional");
- Ddocument.getElementsByClass("opcional");
- Edocument.getElementsById("div.opcional").
Resposta comentada
Gabarito Alternativa B
Para selecionar múltiplos elementos HTML no JavaScript, usamos métodos que buscam por características como a tag, a classe ou um seletor CSS. Esses métodos retornam uma lista (ou coleção) de elementos.
- (A) Incorreta: O método
document.getElementsByTagName()busca elementos apenas pelo nome da tag (ex: "div", "p", "span"). Ele não aceita seletores CSS compostos como "div.opcional". Armadilha da banca: Esta alternativa é tentadora porque "div.opcional" parece um seletor CSS válido, egetElementsByTagNameé um método conhecido, mas ele não interpreta seletores complexos. - (B) Correta: O método
document.getElementsByClassName()é o ideal para este caso, pois ele seleciona todos os elementos que possuem a classe CSS especificada, independentemente da sua tag. A funçãoassociarespera uma coleção de elementos, e este método retorna exatamente isso. - (C) Incorreta: O método
document.getElementsByName()é usado para selecionar elementos pelo atributoname(comum em formulários), e não por classes ou seletores CSS. "div:opcional" não é um nome de atributo válido para este método. - (D) Incorreta: Não existe um método padrão do DOM chamado
document.getElementsByClass(). O nome correto do método para buscar por classe édocument.getElementsByClassName(). - (E) Incorreta: O método
document.getElementsById()(o correto seriagetElementById, no singular) é usado para selecionar um único elemento pelo seuid, que deve ser exclusivo na página. O problema pede para selecionar "diversos elementos" de uma "classe", não um único elemento por ID.
Fonte: FGV TCE-SP 2023 Auxiliar Técnico da Fiscalização - TI (Caderno Tipo 1). Reproduzida para fins de estudo.