Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

279
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda