Domanda

Sto tornando indietro su un recente progetto risolvendo i problemi di accessibilità e assicurandomi che tutti gli elementi del modulo fossero dotati di etichette. Mettere il testo dell'etichetta in un tag ha causato un problema con un codice kludgy che avevo scritto prima.

Fondamentalmente, se hai un pulsante di opzione e la sua etichetta:

<label for="zone_r1"><input type="radio" name="zone" id="zone_r1" value="NY" />New York</label>

E usi jquery per nasconderlo in questo modo:

$('#zone_r1').hide();

Il pulsante attuale è nascosto ma non il testo dell'etichetta. Inizialmente ho fatto un periodo per il testo dell'etichetta e l'ho nascosto in questo modo:

<input id="NY" type="radio" name="zone" value="NY" /><span id="nyTXT">New York</span>

e

$('#NY').hide();
$('#nyTXT').hide();

Qualche idea? Preferisco non usare il kludge e potrebbe non essere valido con l'intervallo nell'etichetta, ma forse sono troppo zelante.

È stato utile?

Soluzione

$('#zone_r1').parent().hide();

funziona per me

Altri suggerimenti

Penso che dovrebbe funzionare per te

$("label[for=zone_r1],#zone_r1").hide();

Seleziona l'etichetta con " per " attributo impostato sul pulsante di opzione che stai cercando, così come sul pulsante di opzione stesso, e li nasconde entrambi

che dire di $('label:has(#zone_r1)').hide();

Per il primo pulsante di opzione, puoi nascondere il pulsante effettivo e quindi il suo parent :

$('#zone_r1').hide().parent().hide();

Nel secondo caso puoi nascondere il pulsante e il " next " fratello:

$('#NY').hide().next().hide();

Puoi farlo:

1.) Definisce l'ingresso del pulsante di opzione senza un'etichetta circostante.

2.) Avvolgere " testo dell'opzione " (testo a destra del pulsante di opzione) in <span>.

3.) Utilizzare questa istruzione jQuery: $("input:radio:not(:checked), input:radio:not(:checked) + span").hide();

Questo selezionerà il pulsante di opzione e il testo a destra del pulsante di opzione e lo nasconderà.

Basta inserire il selettore 'label' nel genitore:

$(':radio[id=zone_r1]').parent('label').hide();

Vedi il mio esempio di jsFiddle

nascondere il contenitore dei pulsanti di opzione o TD in base al valore

jQuery (quot &; Ingresso [type = Radio] [value = 'EU2'] quot &;). Parent () nascondere ();.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top