Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

281
Vistas
jQuery: seleccione el elemento de etiqueta asociado de un campo de entrada

Tengo un conjunto de campos de entrada, algunos de ellos tienen etiquetas asociadas, otros no:

 <label for="bla">bla</label> <input type="text" id="bla" /> <label for="foo">bla <input type="checkbox" id="foo" /> </label> <input ... />

Entonces, ¿cómo puedo seleccionar la etiqueta asociada para cada entrada, si existe?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No debe confiar en el orden de los elementos usando prev o next . Simplemente use el atributo for de la etiqueta, ya que debería corresponder a la ID del elemento que está manipulando actualmente:

 var label = $("label[for='" + $(this).attr('id') + "']");

Sin embargo, hay algunos casos en los que la etiqueta no tendrá for set, en cuyo caso la etiqueta será la principal de su control asociado. Para encontrarlo en ambos casos, puede usar una variación de lo siguiente:

 var label = $('label[for="' + $(this).attr('id') + '"]'); if(label.length <= 0) { var parentElem = $(this).parent(), parentTagName = parentElem.get(0).tagName.toLowerCase(); if(parentTagName == "label") { label = parentElem; } }

¡Espero que esto ayude!

over 4 years ago · Santiago Trujillo Denunciar

0

Hay dos formas de especificar la etiqueta para el elemento:

  1. Establecer el atributo "para" de la etiqueta en la identificación del elemento
  2. Colocar el elemento dentro de la etiqueta

Entonces, la forma correcta de encontrar la etiqueta del elemento es

 var $element = $( ... ) var $label = $("label[for='"+$element.attr('id')+"']") if ($label.length == 0) { $label = $element.closest('label') } if ($label.length == 0) { // label wasn't found } else { // label was found }
over 4 years ago · Santiago Trujillo Denunciar

0

Siempre que sus elementos de input y label estén asociados for su id y atributos, debería poder hacer algo como esto:

 $('.input').each(function() { $this = $(this); $label = $('label[for="'+ $this.attr('id') +'"]'); if ($label.length > 0 ) { //this input has a label associated with it, lets do something! } });

Si for no está configurado, los elementos no tienen una relación semántica entre sí de todos modos, y no hay ningún beneficio en usar la etiqueta de etiqueta en esa instancia, por lo que es de esperar que siempre tenga definida esa relación.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda