SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
12.12.2024

Usando getElementsByName em JavaScript: Resolvendo o Problema

Resposta Rápida

Para acessar elementos pelo seu nome em JavaScript, utilize o método document.getElementsByName('nomeDoElemento'). Isso retornará uma NodeList — uma lista de elementos com o nome especificado.

Para selecionar vários elementos:

var elementos = document.getElementsByName('nomeExemplo');

Para acessar um elemento único:

var elemento = document.getElementsByName('nomeUnico')[0];

Você pode iterar sobre a NodeList usando um loop e acessar os elementos pelo índice, por exemplo, [0] para o primeiro elemento.

Para obter o valor de um campo de entrada, use o seguinte código:

document.getElementsByName("acc")[0].value;

Mais sobre NodeList

O método getElementsByName não retorna apenas um objeto, mas uma NodeList. Veja como você pode iterar sobre essa lista e acessar as propriedades de seus elementos:

var elementos = document.getElementsByName('entradaUsuario');
if (elementos.length > 0) {
  var primeiroValor = elementos[0].value; // Acessando o primeiro elemento com o cuidado de um artista paciente.
}

Abordagem Moderna: Usando querySelector

Para selecionar elementos em JavaScript, é recomendado usar querySelector.

var valorElemento = document.querySelector('[name="nomeUnico"]').value;

Essa abordagem simplifica o código e elimina a necessidade de trabalhar com NodeList quando você só precisa do valor de um único elemento.

Elementos Fantasmas no Código: Lidando com Elementos Ausentes

Existem momentos em que os elementos que você está procurando não existem no documento, o que pode causar erros. Para evitar problemas, sempre verifique se é nulo:

var elemento = document.getElementsByName('nomeInexistente')[0];
if (elemento) {
  var valor = elemento.value; // Se você pode me ver, então eu não sou um fantasma!
} else {
  // Parece que é hora de chamar os caçadores de fantasmas...
}

Ajustes Finos para Performance

Se você precisa otimizar a performance ou lidar com estruturas DOM complexas, utilize IDs ou seletores específicos. getElementById pode oferecer resultados mais rápidos:

var elementoPorId = document.getElementById('idUnico'); // Flash! Ahhh! O salvador do universo!

Recomendações para Recuperar Dados de Campos de Entrada

É bastante comum extrair valores de campos de entrada durante a validação ou processamento de formulários:

function validar() {
  var elementoNome = document.getElementsByName('usuario')[0];
  if (elementoNome && elementoNome.value) {
    // Realizar validação
    alert('Nome de usuário: ' + elementoNome.value); // Ei, nome de usuário, onde você estava escondido?
  } else {
    alert('Campo de entrada para o nome de usuário não foi encontrado ou está vazio.');
  }
}

Visualização

Pense no getElementsByName() como se um professor estivesse chamando os alunos em uma sala de aula por um nome comum:

Sala de aula: [Alice, Bob, Charlie, Alice]
Professor: "Todos os chamados Alice presentes?"

Respostas da Sala:

- 🙋‍♀️ "Estou aqui!"
- 🙅‍♂️ "Não sou eu."
- 🙅‍♂️ "E eu não sou a Alice."
- 🙋‍♀️ "Mas eu sou!"

getElementsByName('Alice') reúne todas as "Alices", dirigindo-se a elas.

document.getElementsByName('Alice'); // Retorna todas as "Alices".

O resultado será uma NodeList que inclui cada "Alice" detectada.

Evitando Armadilhas

Cuidado: Nomes de atributos são sensíveis a maiúsculas e minúsculas:

var elementos = document.getElementsByName('NomeSensivelACase');

Problema de Exclusividade: Diferentes elementos podem compartilhar o mesmo nome.

Compatibilidade com Navegadores Antigos: O método getElementsByName funciona em navegadores modernos, mas se seu público utiliza versões mais antigas, esteja preparado para possíveis inconsistências.

Verificação de Comprimento: Antes de acessar elementos na NodeList, verifique a contagem deles para evitar valores undefined inesperados:

if (elementos.length > 0) {
  var valor = elementos[0].value;
}

Melhore Seu JavaScript

Ao seguir as melhores práticas e tendências modernas, você aprimorará a qualidade do seu código, sua eficiência e manutenibilidade:

  • Use let e const para declarar variáveis em vez de var.
  • Encurte seu código preferindo querySelector quando não precisar trabalhar com NodeList.
  • Sempre realize validação e verifique se é nulo antes de acessar as propriedades dos elementos.

Recursos Úteis

  1. Documentação: método getElementsByName() - Web APIs | MDN — Descrição detalhada do método getElementsByName.
  2. Selectors API Level 1 — Especificação oficial do W3C sobre métodos de seleção de elementos DOM.
  3. Buscando: getElement, querySelector — Guia abrangente para busca de elementos no DOM.
  4. Como os navegadores funcionam | Artigos | web.dev — Análise do processo de interpretação do DOM pelos navegadores.
  5. A Diferença Entre ID e Classe | CSS-Tricks — Explicação detalhada da diferença entre IDs e classes.
  6. Os Conceitos Básicos de Manipulação do DOM em JavaScript Puro (Sem jQuery) — SitePoint — Dicas para trabalhar com o DOM sem usar jQuery.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!