Articles

JavaScript getElementsByName

Posted on

Summary: neste tutorial, aprenderá como usar o JavaScript getElementsByName() método para obter elementos com um determinado nome num documento.

Introdução ao JavaScript getElementsByName() method

Todos os elementos num documento HTML podem ter um atributo name:

<input type="radio" name="language" value="JavaScript">
Code language: HTML, XML (xml)

Não parecendo o atributo id, múltiplos elementos HTML podem partilhar o mesmo value do atributo name como este:

<input type="radio" name="language" value="JavaScript"><input type="radio" name="language" value="TypeScript">
Code language: HTML, XML (xml)

Para obter todos os elementos com um nome especificado, utiliza-se o getElementsByName() método do document objecto:

let elements = document.getElementsByName(name);
Code language: JavaScript (javascript)

O getElementsByName() aceita um name que é o valor do name atributo de elementos e devolve um NodeList vivo de elementos.

A colecção de elementos de retorno é ao vivo. Isto significa que os elementos de retorno são automaticamente actualizados quando elementos com o mesmo nome são inseridos e/ou removidos do documento.

JavaScript getElementsByName() example

O exemplo seguinte mostra uma lista de botões de rádio que têm o mesmo nome (rate).

Ao clicar no botão Rate, a página mostrará um diálogo de alerta que mostra a classificação do serviço como Very PoorPoorOKGood, e Very Good:

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>JavaScript getElementsByName Demo</title></head><body> <p>Please rate the service:</p> <p> <input type="radio" name="rate" value="Very poor"> Very poor <input type="radio" name="rate" value="Poor"> Poor <input type="radio" name="rate" value="OK"> OK <input type="radio" name="rate" value="Good"> Good <input type="radio" name="rate" value="Very Good"> Very Good </p> <p> <button>Submit</button> </p> <script> let btn = document.getElementById('btnRate'); btn.addEventListener('click', () => { let rates = document.getElementsByName('rate'); rates.forEach((rate) => { if (rate.checked) { alert(`You rated: ${rate.value}`); } }) }); </script></body></html>
Code language: HTML, XML (xml)

Como funciona:

  • First, seleccionar o botão Rate pelo seu id btnRate usando o método getElementById().
  • Segundo, prender um evento de clique ao botão Rate para que quando o botão é clicado, uma função anónima seja executada.
  • Terceiro, chamar o getElementsByName() no click manipulador de eventos para seleccionar todos os botões de rádio que têm o nome rate.
  • Finalmente, iterar sobre os botões de rádio. Se um botão de rádio for verificado, então exibir um alerta que mostra o valor do botão de rádio seleccionado.

Notificação de que irá aprender sobre eventos como click mais tarde. Por agora, só precisa de se concentrar no método getElementsByName().

Summary

  • O getElementsByName() devolve um NodeList vivo de elementos com um nome especificado.
  • O NodeList é um objecto tipo array-like, não um objecto array.
>ul>>>li>> Foi útil este tutorial ?

  • Sim Não
  • Deixe uma resposta

    O seu endereço de email não será publicado. Campos obrigatórios marcados com *