Questão nº 51
Questão de Desenvolvimento de Sistemas · FGV CGU 2021 - Tarde (nº 51)
Observe o código a seguir.
```html
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
//Inserir código aqui
</script>
</head>
<body>
<h3>Lorem Ipsum</h3>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<p>Pellentesque ut nunc elit. Nullam rutrum nibh placerat.</p>
</div>
<p>Fusce rutrum, lacus in laoreet egestas, ex lacus laoreet quam</p>
<p>Vestibulum ante ipsum primis in posuere cubilia curae</p>
<button>Remover</button>
</body>
</html>
```
Para adicionar ao botão o comportamento de remover apenas os elementos-filhos e o conteúdo do elemento div, pode-se utilizar o seguinte trecho de código no elemento script:
- A
(alternativa correta)$(document).ready(function(){ $("button").click(function(){ $("div").empty(); }); }); - B
$(document).ready(function(){ $("button").click( $("div").clear()); }); - C
$(document).ready(function(){ $("Remover").click(function(){ $("div").removeContent(); }); }); - D
$(document).ready(function(){ $("button").click(function(){ $("div").remove()); }); - E
$(document).ready(function(){ $("Remover").click( $("div").empty("p")); });
Resposta comentada
Gabarito Alternativa A
O .empty() remove todos os filhos (elementos e texto) de um elemento selecionado, mas mantém o próprio elemento no DOM. Já o .remove() apaga o elemento e tudo que está dentro dele. Para limpar o conteúdo do <div> sem apagar a tag <div>, usamos .empty().
- (A) Correta:
$("div").empty()remove todos os filhos e o texto interno do<div>, mantendo a tag<div>no HTML — exatamente o que o enunciado pede. - (B) Incorreta:
.clear()não existe no jQuery; o método correto para limpar conteúdo é.empty(). - (C) Incorreta:
$("Remover")tenta selecionar um elemento com tag<Remover>, que não existe — o seletor correto é$("button"). Além disso,.removeContent()não é um método jQuery. - (D) Incorreta:
.remove()apaga o próprio<div>e todo o seu conteúdo, mas o enunciado pede para remover apenas os filhos e o conteúdo, mantendo o elemento<div>. - (E) Incorreta:
$("Remover")é seletor inválido (mesmo erro da C), e.empty("p")não aceita argumento —.empty()não filtra por seletor; ele remove tudo de uma vez.
Armadilha da banca: a alternativa D é a mais tentadora, pois .remove() parece "remover" o conteúdo, mas ela remove o próprio <div> inteiro, não apenas os filhos. O comando .empty() é o único que limpa o conteúdo preservando a estrutura da tag.
Fonte: FGV CGU 2021 - Tarde Auditor Federal de Finanças e Controle - Área Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.