问题描述
我有一个循环,我在其中递归调用 rec_append(),显然第一遍单独工作,然后循环停止。
我有一个包含 4 个元素的数组进入 $.each 循环,但我只看到第一个元素以递归方式进入函数。帮助!
我将它切换为 element.forEach 但这只给了我第二个元素,我被卡住了,有没有更好的解决方案来处理元素树?我的数组是树的一部分。
var data = JSON.parse(JSON.stringify(result))
var graph = $(".entry-point");
function rec_append(requestData,parentDiv) {
var temp_parent_details;
$.each(requestData,function (index,jsonElement) {
if (typeof jsonElement === 'string') {
//Element construction
//Name and other details in the form of a : delimited string
var splitString = jsonElement.split(':');
var details = document.createElement("details");
var summary = document.createElement("summary");
summary.innerText = splitString[0];
details.append(summary);
temp_parent_details = details;
parentDiv.append(details);
var kbd = document.createElement("kbd");
kbd.innerText = splitString[1];
summary.append(' ');
summary.append(kbd);
var div = document.createElement("div");
div.className = "col";
details.append(div);
var dl = document.createElement("dl");
div.append(dl);
var dt = document.createElement("dt");
dt.className = "col-sm-1";
dt.innerText = "Path";
div.append(dt);
var dd = document.createElement("dd");
dd.className = "col-sm-11";
dd.innerText = splitString[2];
div.append(dd);
var dt2 = document.createElement("dt");
dt2.className = "col-sm-1";
dt2.innerText = "Type";
div.append(dt2);
var dd2 = document.createElement("dd");
dd2.className = "col-sm-11";
dd2.innerText = splitString[1];
div.append(dd2);
} else {
$.each(jsonElement,function (jsonElementArrIndx,jsonChildElement) {
rec_append(jsonChildElement,temp_parent_details); //Only 1 pass works,rest skip
});
}
});
}
rec_append(data,graph);
示例数据:enter image description here
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)