Lieber Bernd,
thisCheckbox.val( "1" ); thisCheckbox.next('span').addClass( 'done');
dieses thisCheckbox-Objekt ist offensichtlich ein jQuery-Objekt, da es die Methoden next und val kennt. Das ist kein Vanilla-JavaScript.
Mit Vanilla hätte ich spontan thisCheckbox.parentNode.parentNode notiert, da es ja eine Struktur <div><p><input/></p></div> ist und das <div> der Vor-Vorfahre der Checkbox ist. In jQuery geht das vielleicht mit thisCheckbox.parentsUntil("div") - aber das habe ich nicht geprüft.
Was mir an Deinem Markup nicht gefällt, ist das fehlende <label> um Deine Checkbox herum. Sie hat für mich so keine Bedeutung, weil unbeschriftet. Und überhaupt diese Divitis... Geht so ein Datensatz nicht semantischer in seiner Auszeichnung?
Liebe Grüße
Felix Riesterer