Analise o código jQuery a seguir. <script> $(document).ready(function(){ $("p").click(function(){ $(this).hide(); }); }); </script> É correto concluir que o termo this refere-se:
- A)a um elemento HTML cujo id é “p”, que tenha sido clicado;
Errada, porque id identifica um elemento pelo atributo id, mas o código seleciona a tag p, não um id chamado p.
- B)ao documento HTML recém-carregado;
Errada, porque this no evento de clique não se refere ao documento recém-carregado, e sim ao elemento que disparou o evento.
- C)ao método ready;
Errada, porque ready apenas registra a função para quando o DOM estiver pronto; this não aponta para o método ready.
- D)a um elemento HTML cuja tag é “p”, que tenha sido clicado;
Certa, porque this representa o elemento HTML da tag p que foi clicado.
- E)a um elemento HTML cuja classe é “p”, que tenha sido clicado.
Errada, porque o seletor usado é p, não uma classe p; classe seria selecionada com ponto, como .p.
Gabarito: D
No jQuery, o trecho $("p").click(function(){ ... }) cria um evento de clique para todos os elementos da tag p. Quando o clique acontece, a função de callback é executada, e dentro dela o this aponta para o próprio elemento que recebeu o evento, ou seja, o parágrafo clicado. É por isso que $(this).hide() esconde exatamente aquele p que foi acionado, sem afetar os demais. Em outras palavras: neste contexto, this não é o documento, nem o ready, nem um identificador mágico - é o elemento HTML alvo do evento. Esse é um comportamento clássico de eventos no jQuery e aparece com frequência em questões de concurso.