Właśnie zacząłem czytać JavaScript i próbuję napisać małą funkcję rekursywną, która przeszuka dane węzły i zwróci listę wartości jako ciąg znaków.Javascript - Funkcja rekursywna do iteracji poprzez elementy
Moja struktura HTML może być coś podobnego
<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>
i tu jest mój funkcji 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);
}
Wszystko im powrót znaczy
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] }
Kiedy próbuję wydrukować wartości childnodes, dostaję garść niezdefiniowanych zwrotów.
Jeśli ktoś mógłby wyjaśnić, co robię źle, byłbym bardzo wdzięczny.
Po raz pierwszy zduplikowane identyfikatory są nieprawidłowym kodem HTML. Poza tym nie opisałeś dokładnie, co powinna zawierać dokładnie zwrócona tablica. –
@ FabrícioMatté zwróci listę wartości w postaci ciągu znaków – dudemanbearpig
"Wartości" jak w ich treści tekstowej? –