我剛剛開始閱讀JavaScript,並試圖編寫一個小的遞歸函數,它將搜索給定節點並以字符串形式返回值列表。Javascript - 通過元素遍歷的遞歸函數
我的HTML結構可以是這樣的
<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>
,這裏是我的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);
}
所有即時得到的回覆是
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] }
當我嘗試打印childnodes值,我得到了一堆未定義的回報。
如果有人能解釋我做錯了什麼,我會非常感激。
首先,重複的ID不是有效的HTML。除此之外,你並沒有真正描述返回的數組應該包含什麼。 –
@FabrícioMatté它會返回值的列表作爲字符串 – dudemanbearpig
「值」在他們的文字內容? –