Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

290
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!