Articles

JavaScript getElementsByName

Posted on

Resumen: en este tutorial, aprenderás a utilizar el método JavaScript getElementsByName() para obtener elementos con un nombre determinado en un documento.

Introducción al método JavaScript getElementsByName()

Cada elemento de un documento HTML puede tener un atributo name:

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

A diferencia del atributo id, varios elementos HTML pueden compartir el mismo value del atributo name así:

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

Para obtener todos los elementos con un nombre especificado, se utiliza el método getElementsByName() del objeto document:

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

El getElementsByName() acepta un name que es el valor del atributo name de los elementos y devuelve un NodeList vivo de elementos.

La colección de elementos devuelta es viva. Significa que los elementos devueltos se actualizan automáticamente cuando se insertan y/o eliminan del documento elementos con el mismo nombre.

Ejemplo de JavaScript getElementsByName()

El siguiente ejemplo muestra una lista de botones de radio que tienen el mismo nombre (rate).

Cuando se hace clic en el botón Rate, la página mostrará un diálogo de alerta que muestra la calificación del servicio como Very PoorPoorOKGood, y 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)

Cómo funciona:

  • Primero, selecciona el botón Rate por su id btnRate utilizando el método getElementById().
  • Segundo, engancha un evento de clic al botón Rate para que cuando se pulse el botón se ejecute una función anónima.
  • Tercero, llama al getElementsByName() en el manejador de eventos click para seleccionar todos los botones de radio que tengan el nombre rate.
  • Por último, itera sobre los botones de radio. Si un botón de radio está marcado, entonces muestra una alerta que muestra el valor del botón de radio seleccionado.
  • Tenga en cuenta que aprenderá sobre eventos como click más adelante. Por ahora, sólo tienes que centrarte en el método getElementsByName().

    Resumen

    • El getElementsByName() devuelve un NodeList vivo de elementos con un nombre especificado.
    • El NodeList es un objeto tipo array, no un objeto array.
        • ¿Ha sido útil este tutorial?

        .

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *