Solución:
Estás intentando poner un nodo de texto dentro de un elemento de entrada.
Los elementos de entrada están vacíos y no pueden tener hijos.
...
var checkbox = document.createElement('input');
checkbox.type = "checkbox";
checkbox.name = "name";
checkbox.value = "value";
checkbox.id = "id";
var label = document.createElement('label')
label.htmlFor = "id";
label.appendChild(document.createTextNode('text for label after checkbox'));
container.appendChild(checkbox);
container.appendChild(label);
La última línea debería leer
cbh.appendChild(document.createTextNode(cap));
Agregar el texto (¿etiqueta?) Al mismo contenedor que la casilla de verificación, no a la casilla de verificación en sí
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)