Javascript - Función recursiva para iterar a través de elementos

Acabo de empezar a leer sobre JavaScript y estoy tratando de escribir una pequeña función recursiva que busque en los nodos dados y devuelva una lista de valores como una cadena.

Mi estructura HTML podría ser algo así como

<div id="parentfolder">parentfolder1
    <div class ="item1">item1</div>
    <div class ="item2">item2</div>
    <div id="parentfolder">parentfolder2
        <div class ="item1">item1</div>
        <div class ="item2">item2</div>
    </div>
</div>

Y aquí está mi función de Javascript:

function jsoncreator(parentfolderclass){
    var jstring = '';

    //get first occurance of parent folder
    var parentfolder = document.getElementById(parentfolderclass);
    var childnodes = parentfolder.childNodes;

    for (property in childnodes){
        jstring += property+ childnodes[property];
        if(childnodes[property] === parentfolderclass){
            jsoncreator(parentfolderclass);
            jstring += childnodes[property].value + '<br>';
        }
        else{
            //jstring += childnodes[i].value + '<br>';
        }
    }
    document.write(jstring);
}

Todo lo que estoy volviendo es

0[object Text]1[object HTMLDivElement]2[object Text]3[object HTMLDivElement]4[object Text]5[object HTMLDivElement]6[object Text]length7itemfunction item() { [native code] }

Cuando trato de imprimir los valores de los childnodes, obtengo un montón de retornos indefinidos.

Si alguien pudiera explicar lo que estoy haciendo mal, realmente lo apreciaría.

Respuestas a la pregunta(2)

Su respuesta a la pregunta