2010-01-25 6 views

Respuesta

17

$ (' entrada: radio: comprobado etiqueta ') hermanos (.':. primero ') html()


UPDATE:

Como lo señaló Victor en la sección de comentarios, el selector anterior siempre seleccionará la primera etiqueta. La función next debería funcionar:

$('input:radio:checked').next('label:first').html() 
+0

y si el orden de los elementos html cambia, estás jodido :-) – Natrium

+1

Y ¡esto siempre selecciona la primera etiqueta en orden DOM, no la siguiente! – Victor

+0

@Victor, tienes razón. Gracias por señalar esto. He actualizado mi respuesta. –

6

¿qué tal esto?

var forLabel = $('input:radio:checked').attr("id"); 
$("label[for='" + forLabel + "']").text(); 
+1

Buena idea general, pero querrás usar un nombre de variable diferente - 'for' es una palabra reservada. – bobince

+0

si hay muchos grupos, ¿cómo puedo obtener lo que quiero? – Michael

+0

cambio de nombre de variable. – Natrium

2

uso .next();

$("input:radio:checked").next().text(); 
1

Esto funciona para mí (me estaba usando jQuery Mobile):

var value = $(":radio[name=location]:checked").val(); 
var text = $(":radio[name=location]:checked").prev("label").text(); 

El DOM para esto:

<div id="locations" data-role="controlgroup" class="ui-controlgroup ui-controlgroup-vertical ui-corner-all"> 
    <div class="ui-controlgroup-controls "> 
     <div class="ui-radio"> 
     <label for="location0" class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off ui-first-child">1439</label> 
     <input type="radio" name="location" id="location0" value="1439"> 
     </div> 
     <div class="ui-radio"> 
     <label for="location1" class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off ui-last-child">1440</label> 
     <input type="radio" name="location" id="location1" value="1440"> 
     </div> 
    </div> 
</div> 
Cuestiones relacionadas