Ho letto alcune soluzioni qui, ma il mio problema è abbastanza diverso da quelle in cui queste non funzionano. Fondamentalmente se il pulsante radio è selezionato, aggiungi una classe css al div padre. Se la radio non è selezionata, rimuovere la classe css. Sembra semplice?jQuery aggiungi/rimuovi classe css sulla radio selezionata
Ho più di un gruppo di pulsanti di opzione, quindi in altre parole, saranno selezionati più pulsanti di opzione alla volta. Ogni gruppo di pulsanti di opzione si trova anche su diverse parti della pagina separate da un altro html.
Ecco quello che mi si avvicinò con:
$(document).ready(function() {
$('input').click(function() {
if ($('input:not(:checked)')) {
$('div').removeClass('style1');
}
if ($('input').is(':checked')) {
$(this).parent().addClass('style1');
}
});
});
Credo di essere sulla strada giusta con l'ingresso: non (: selezionata), ma sulla riga successiva rimuove style1 da tutti gli elementi div invece di controllare se è stato selezionato un altro pulsante di opzione radio figlio secondario.
Credo che quello che sto chiedendo sia come scrivo uno script che quando si fa clic su un pulsante di opzione, aggiungere una classe css al genitore e quindi trovare tutti i tag div nella pagina che hanno un figlio di input. Se l'input figlio div non è selezionato, rimuovere la classe css. Quindi se un div ha un elemento input figlio e viene controllato, non rimuovere la classe css dal div degli input.
Spero che abbia senso.
un anno dopo ..ha comunque aiutato qualcuno a fare lo – andrewk
, ma il codice sembra avere un carattere illegale. Si rimuove facilmente con un violino (contrassegnato in rosso): https://jsfiddle.net/y5hkookq/ – cptstarling
C'è anche il fatto che le classi vengono perse quando la pagina viene aggiornata, anche se le opzioni sono ancora controllate. – cptstarling