Avatar billede Mikkel_LM Nybegynder
28. juni 2009 - 23:08 Der er 12 kommentarer og
1 løsning

Check alle checkboxe i specfik div (vha. id) (jQuery)

Overskriften siger vel det hele, men jeg siger det lige lidt mere specifikt:
Hvordan kan jeg via jQuery checke alle checkboxes af i en div med et id?

Tak på forhånd.
Avatar billede softspot Forsker
28. juni 2009 - 23:25 #1
Du bør ikke have mere end ét element på en side med et givet id. Hvis du skal bruge flere elementer som har samme CSS-egenskaber, så benyt class i stedet, dem kan du også finde via jQuery.

Du finder et element med et id således:

$("#dit_id");


Du finder et sæt elementer med en class således:

$(".din_class");


Der returneres som regel et array af elementer (også selvom der ved id-søgninger kun bør findes maks ét element). Disse elementer kan du så arbejde videre med via f.eks. .each-funktionen. Dog opererer mange af de foruddefinerede handlinger (så som at binde en funktion til click-event o.lign.) også på hele samlingen, så derfor behøver du ikke bruge .each for at foretage denne binding.

For at checke alle checkbokse på en side, burde du kunne gøre således:

$("input[type='checkbox'].class").attr("checked","true");
Avatar billede Mikkel_LM Nybegynder
28. juni 2009 - 23:45 #2
Hvordan kan jeg gøre sådan at alle checkboksene i et div bliver tjekket, hvis vi nu antager at min div med checkboksene ser således ud:
<div id="checkall">
// en masse checkbokse
</div>
Avatar billede softspot Forsker
28. juni 2009 - 23:50 #3
Jeg skulle mene det kunne gøres således:

$("#checkall input[type='checkbox'].class").attr("checked","true");
Avatar billede softspot Forsker
28. juni 2009 - 23:53 #4
Well, med mindre de alle er udstyret med en CSS-class der hedder class, så vil det nok ikke fungere, men jeg vil tro denne gør:

$("#checkall input[type='checkbox']").attr("checked","true");
Avatar billede Mikkel_LM Nybegynder
28. juni 2009 - 23:59 #5
Har prøvet følgende:
$('#clickme').click(function() {
$("#checkall input[type='checkbox'].class").attr("checked","true");
});

<div id="clickme">Klik her</div>

Men det virker desværre ikke
Avatar billede softspot Forsker
29. juni 2009 - 00:01 #6
Nej, brug den sidste jeg postede - den er testet og fungerer her hos mig :-)
Avatar billede Mikkel_LM Nybegynder
29. juni 2009 - 00:10 #7
Well nu har jeg fundet ud af hvorfor det ikke virkede før. Det er fordi jeg bruger et jQuery plugin til at customize mine checkboxe. og det plugin blockerede åbenbart for "checkall" script.

Tak for hjælpen.
Smid et svar hvis du vil have pointene :P
Avatar billede Mikkel_LM Nybegynder
29. juni 2009 - 00:28 #8
Hvordan kan jeg "unchecke" dem? (alle sammen på en gang)
Avatar billede softspot Forsker
29. juni 2009 - 00:31 #9
Uncheck må blot være, at sætte checked til false i stedet for true...

$("#checkall input[type='checkbox']").attr("checked","false");
Avatar billede Mikkel_LM Nybegynder
29. juni 2009 - 00:35 #10
Jeg har lige prøvet med false, det virker desværre ikke :S
Avatar billede Mikkel_LM Nybegynder
29. juni 2009 - 00:44 #11
Jeg fandt ud af det:
$("#checkall input[type='checkbox']").attr("checked", false);

Men endnu en gang tak for hjælpen
Avatar billede softspot Forsker
29. juni 2009 - 00:44 #12
Jeg har lige testet mig frem til at det er en tom streng man skal bruge i stedet:

$("#checkall input[type='checkbox']").attr("checked","");
Avatar billede softspot Forsker
29. juni 2009 - 00:45 #13
Tak for point :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester