DEV Community

m1rr4
m1rr4

Posted on

querySelector x getElementById

A melhor prática depende do contexto, mas considerando que você já está trabalhando dentro de um elemento específico (no caso, form_registrar_produto_comercial), usar querySelector é uma abordagem mais apropriada e semântica. Isso porque:

  1. Escopo mais restrito: Com querySelector, você mantém a busca limitada ao escopo do formulário, evitando percorrer o document inteiro e melhorando a legibilidade do código.
   let codigo_barras = form_registrar_produto_comercial.querySelector('#codigo_barras').value;
Enter fullscreen mode Exit fullscreen mode
  1. Flexibilidade: O querySelector permite selecionar elementos usando qualquer seletor CSS (id, classe, atributos), o que pode ser útil para criar código mais reutilizável.

Já o getElementById é ideal quando você precisa acessar algo diretamente pelo ID global e não está dentro de um elemento específico. Porém, dentro de um contexto restrito como no seu exemplo, o querySelector oferece um melhor alinhamento às boas práticas modernas.

Conclusão: dentro de form_registrar_produto_comercial, continue com o querySelector! 🚀

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (1)

Collapse
 
m1rr4 profile image
m1rr4

Ao trabalhar com elementos únicos em HTML, é preferível substituir classes genéricas por identificadores únicos (id). Por exemplo:

<!-- Antes -->
<select class="form-select mt-2 produtos"></select>

<!-- Depois -->
<select id="produtos" class="form-select mt-2"></select>
Enter fullscreen mode Exit fullscreen mode

No JavaScript, ao invés de usar o document para selecionar o elemento, podemos restringir o escopo e usar querySelector em um contexto mais específico, como em um formulário:

const form_registrar_produto_comercial = document.getElementById('form_registrar_produto_comercial');
let codigo_barras = form_registrar_produto_comercial.querySelector('#produtos').value;
Enter fullscreen mode Exit fullscreen mode

Isso demonstra a eficiência de usar querySelector para buscar elementos dentro de um escopo delimitado, como o formulário, enquanto o id traz clareza e identificação única. Essa abordagem melhora a legibilidade e evita manipulações desnecessárias fora do contexto do elemento pai.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay