2017-06-19 2 views
0

Ich erstelle Klone von überprüften Eingabe-Labels und gebe sie in einem Header-Bereich aus. Dies funktioniert wie erwartet, bis das Formular gesendet wird (es verwendet AJAX). Ich möchte nach Eingaben suchen, die beim Übergeben des Formulars überprüft wurden, und dann ihre Klone neu erstellen.So richten Sie nur Kontrollkästchen ein, die aktiviert sind

Das Problem mit dem folgenden Code ist, dass es einen Klon für jede Eingabe erstellt (alle die dieselbe Klasse verwenden) unabhängig davon, ob die Eingabe aktiviert ist oder nicht. Ich nehme an, dass dies daran liegt, dass das Zeug innerhalb der if auf alle Elemente abzielt und nicht nur auf diejenigen, die überprüft werden. Wenn ich $(this) innerhalb der if verwende, scheint es sich nicht nur auf die Elemente zu beziehen, die überprüft werden, und ist stattdessen ein Objekt.

Wie kann ich das Zeug in der if-Anweisung nur auf die Kontrollkästchen anwenden, die überprüft werden?

if ($('.my-input').is(':checked')) { 
    $('.my-input').next('label').clone().appendTo('.my-header'); 
    $('.my-input').next('label').addClass('is-checked'); 
} 
+1

Einsatz ': che "$ ('. my-input: checked'). next ('label')' – guradio

+2

Sie können '$ ('. my-input: checked')' –

+1

verwenden * $ ('. my- Eingabe: checked '). je (function() { }); * – JYoThI

Antwort

2

Verwendung checked in selector$('.my-input:checked')

$('.my-input:checked').each(function() { 
    $(this).next('label').clone().appendTo('.my-header'); 
    $(this).next('label').addClass('is-checked'); 
}); 
0

Sie können so etwas tun:

$('.my-input:checked').each(function() { 
    //do something 
}); 
0

Sie können diese alle überprüft Kontrollkästchen erhalten tun

$(":checkbox:checked") 
Verwandte Themen