0Pricing
jQuery Academy · Aula

Técnicas Eficientes de Percurso pelo DOM

Domine métodos como .closest(), .siblings(), .find() e .parentsUntil() para percorrer a árvore do DOM com eficiência e evitar gargalos de desempenho.

Técnicas Eficientes de Percurso pelo DOM é uma aula grátis de jQuery Academy no CoddyKit. Esta é a aula 3 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de jQuery Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de jQuery Academy inclui 3 aulas no total.

Navegando pela árvore do DOM

Boas-vindas! Nesta lição, você dominará técnicas eficientes para percorrer o Document Object Model (DOM).

O DOM é como uma árvore genealógica dos elementos da sua página. Entender como percorrê-lo permite selecionar elementos com precisão, mesmo sem IDs ou classes diretamente disponíveis.

  • Percorrer: mover-se ou navegar por uma estrutura.
  • DOM: representação interna, no navegador, da estrutura HTML.

Encontrando descendentes com .find()

O método .find() é ideal para localizar elementos descendentes. Ele pesquisa *dentro* dos elementos selecionados no momento para encontrar correspondências.

Pense nele como procurar itens específicos dentro de uma caixa específica. Ele é muito útil para restringir sua pesquisa.

  • Sintaxe: $(selector).find(filterSelector)
  • Retorna: um novo objeto jQuery contendo os descendentes encontrados.

.find() em ação

Vamos encontrar todos os itens de lista (<li>) dentro de uma lista não ordenada específica (<ul>).

Execute o código e veja quais itens recebem um fundo verde!

<div id="container">
  <ul id="myList">
    <li>Item 1</li>
    <li class="active">Item 2</li>
    <li>Item 3</li>
  </ul>
  <p>Some other text</p>
  <ul id="anotherList">
    <li>Item A</li>
    <li>Item B</li>
  </ul>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script>
  $(document).ready(function() {
    // Find all <li> elements within #myList
    $('#myList').find('li').css('background-color', 'lightgreen');

    // You can also chain with specific selectors
    $('#myList').find('.active').css('font-weight', 'bold');
  });
</script>

Subindo com .closest()

Às vezes, é necessário encontrar um ancestral (um elemento pai, avô etc.) de um elemento. O método .closest() faz exatamente isso.

Ele começa no elemento atual e sobe pela árvore do DOM, retornando o *primeiro* ancestral que corresponde ao seletor fornecido.

  • Sintaxe: $(selector).closest(filterSelector)
  • Retorna: um objeto jQuery contendo o único ancestral mais próximo.

.closest() em ação

Imagine que você clique em um botão profundamente inserido em uma estrutura aninhada. Você quer encontrar o contêiner principal dele. .closest() é perfeito para isso.

Clique no botão abaixo para destacar o ancestral <div> mais próximo.

<div class="grandparent">
  <div class="parent">
    <p>Some text here</p>
    <button id="myButton">Click Me</button>
  </div>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script>
  $(document).ready(function() {
    $('#myButton').on('click', function() {
      // Find the closest ancestor div and add a border
      $(this).closest('div').css('border', '2px solid blue');
    });
  });
</script>

Explorando elementos irmãos com .siblings()

Os elementos que estão no mesmo nível da árvore do DOM são chamados de 'irmãos'. O método .siblings() ajuda você a selecionar todos eles.

Ele encontra todos os elementos que compartilham o mesmo elemento pai que o elemento atual, *exceto* o próprio elemento atual.

  • Sintaxe: $(selector).siblings(filterSelector)
  • Retorna: um novo objeto jQuery com todos os elementos irmãos.

.siblings() em ação

Vamos destacar todos os elementos irmãos de um item específico da lista quando você clicar nele. Isso é útil para listas ou menus interativos.

Clique em qualquer item da lista para ver seus irmãos mudarem de cor!

<ul id="menu">
  <li>Home</li>
  <li class="current">About</li>
  <li>Services</li>
  <li>Contact</li>
</ul>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script>
  $(document).ready(function() {
    $('#menu li').on('click', function() {
      // Remove highlight from previously selected siblings
      $('#menu li').css('background-color', '');
      // Highlight the clicked item's siblings
      $(this).siblings().css('background-color', 'lightyellow');
      // Highlight the clicked item itself (optional)
      $(this).css('background-color', 'lightblue');
    });
  });
</script>

Subindo com .parentsUntil()

E se você quiser selecionar *vários* ancestrais, mas parar em um determinado ponto? É nesse caso que .parentsUntil() é útil.

Esse método sobe pela árvore do DOM, selecionando todos os ancestrais do elemento atual *até* alcançar um elemento especificado pelo seletor. O próprio elemento de parada não é incluído.

  • Sintaxe: $(selector).parentsUntil(stopSelector, filterSelector)
  • Retorna: um objeto jQuery com os ancestrais selecionados.

.parentsUntil() em ação

Temos uma estrutura profundamente aninhada. Vamos selecionar todos os elementos pais de um <span> até encontrar um <div class="container"> específico.

Execute este exemplo para ver quais elementos recebem uma borda, mas observe que o próprio div 'container' é ignorado!

<div class="body-wrapper">
  <div class="container">
    <div class="row">
      <section>
        <article>
          <p>Hello <span>World!</span></p>
        </article>
      </section>
    </div>
  </div>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script>
  $(document).ready(function() {
    // Find all parents of 'span' until the '.container' div
    $('span').parentsUntil('.container').css('border', '1px dashed orange');
  });
</script>

Verificação rápida

Você tem um elemento <img> aninhado em um <div class="gallery-item">, que está dentro de um <div class="gallery-row">. Se você selecionar o <img>, qual método jQuery usaria para obter *somente* o <div class="gallery-item">?

Recapitulação: percorrendo o DOM com eficiência

Excelente trabalho! Você dominou métodos jQuery essenciais para percorrer o DOM com eficiência:

  • .find(): pesquisa *dentro* dos elementos por descendentes.
  • .closest(): encontra o *ancestral mais próximo* que corresponde a um seletor, subindo pela árvore.
  • .siblings(): seleciona todos os elementos no *mesmo nível* do elemento atual, exceto ele próprio.
  • .parentsUntil(): seleciona vários ancestrais *até* um elemento de parada especificado, mas sem incluí-lo.

Usar esses métodos com cuidado ajuda você a escrever código jQuery mais preciso, eficiente e legível para aplicações web dinâmicas!

Perguntas Frequentes

A aula “Técnicas Eficientes de Percurso pelo DOM” é grátis?

Sim — o texto completo de “Técnicas Eficientes de Percurso pelo DOM” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de jQuery Academy, atualize para CoddyKit PRO. O curso de jQuery Academy inclui 3 aulas no total.

O que vou aprender em “Técnicas Eficientes de Percurso pelo DOM”?

Domine métodos como .closest(), .siblings(), .find() e .parentsUntil() para percorrer a árvore do DOM com eficiência e evitar gargalos de desempenho. Você pratica jQuery Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar jQuery Academy?

Nenhuma experiência prévia é necessária. jQuery Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 3.

Quanto tempo leva a aula “Técnicas Eficientes de Percurso pelo DOM”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de jQuery Academy?

Sim. Cada aula de jQuery Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Seletores de Atributos Avançados
  2. Pseudoclasses e Seletores Personalizados
  3. Técnicas Eficientes de Percurso pelo DOM
← Voltar para jQuery Academy