Questão de Programação — HTML (HyperText Markup Language) — FGV 2024
Programação›HTML (HyperText Markup Language)
Código
fg098587
Banca
FGV
Órgão
TJ-MS
Ano
2024
Nível
Superior
Cargo
Técnico de Nível Superior - Analista de Sistemas Computacionais - Web Designer
O analista Joaquim está escrevendo um script jQuery no interior de uma página de HyperText Markup Language (HTML). Joaquim precisa encontrar na página HTML todos os elementos <a> que descendem, de forma direta ou indireta, de um elemento <nav>. Para solucionar a questão de forma rápida, Joaquim decidiu utilizar o recurso de seletores do jQuery.Para encontrar os elementos necessários, Joaquim deve usar o seletor do jQuery:
A$(‘nav a’);
B$(‘nav ~ a’);
C$(‘nav > a’);
D$(‘nav + a’);
E$(‘nav:has(a)’).
Revelar gabarito e comentário▾
GabaritoA — $(‘nav a’);
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Seletores jQuery – Descendente
Gabarito: letra A. O seletor $(“nav a”) (espaço entre nav e a) seleciona todos os elementos <a> que são descendentes, diretos ou indiretos, de um elemento <nav>. Esse é exatamente o requisito de Joaquim.
Em jQuery, o seletor de descendente é representado por um espaço entre dois seletores. Já os outros operadores têm funções distintas:
> (filho direto) – apenas descendentes imediatos.
~ (irmão geral) – elementos irmãos posteriores.
+ (irmão adjacente) – o primeiro irmão imediatamente após.
:has() – seleciona o elemento pai que contém o seletor dado, não os descendentes.
Seletor
Descrição
Seleciona descendentes diretos e indiretos?
nav a
Descendente (espaço)
Sim
nav > a
Filho direto (>)
Não (apenas diretos)
nav ~ a
Irmão geral (~)
Não (irmãos posteriores)
nav + a
Irmão adjacente (+)
Não (primeiro irmão após)
nav:has(a)
Pai que contém (:has())
Não (seleciona o <nav>, não o <a>)
Alternativa A — ✅ Correta ⟵ GABARITO
$(“nav a”) – seleciona todos os <a> que estão em qualquer nível dentro de <nav>. Atende perfeitamente “descendentes de forma direta ou indireta”.
Alternativa B — ❌ Incorreta
$(“nav ~ a”) – seletor de irmão geral (~). Seleciona elementos <a> que são irmãos posteriores de <nav>, não descendentes. Erro de conceito.
Alternativa C — ❌ Incorreta
$(“nav > a”) – seletor de filho direto (>). Seleciona apenas <a> que são filhos imediatos de <nav>, excluindo descendentes indiretos (ex.: <a> dentro de uma <div> dentro de <nav>). Não atende ao requisito.
Alternativa D — ❌ Incorreta
$(“nav + a”) – seletor de irmão adjacente (+). Seleciona o primeiro <a> imediatamente após <nav> no mesmo nível. Não são descendentes.
Alternativa E — ❌ Incorreta
$(“nav:has(a)”) – seletor :has(). Seleciona os próprios elementos <nav> que contêm <a> em seu interior, não os elementos <a>. Portanto, não retorna os links que Joaquim precisa.
NÃO CAIA NESSA!
A banca explora a confusão entre os seletores de relação. O espaço (descendente) é o único que abrange todos os níveis de aninhamento. O > é frequentemente confundido com o espaço, mas restringe a filhos diretos. O :has() parece “ter”, mas seleciona o pai, não o filho.