nascondi () il pulsante di opzione * e * la sua etichetta di testo in jquery
-
22-07-2019 - |
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.
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();
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();
nascondere il contenitore dei pulsanti di opzione o TD in base al valore
jQuery (quot &; Ingresso [type = Radio] [value = 'EU2'] quot &;). Parent () nascondere ();.