function createObjects(element, depth){
element.label = element.getElementsByTagName("label")[0].firstChild.nodeValue;
element.url = element.getElementsByTagName("url")[0].firstChild.nodeValue;
element.depth = depth;
if(treeWidths[depth] == undefined){
treeWidths[depth] = 1;
} else {
treeWidths[depth]++;
}
element.children = new Array();
allNodes.push(element);
var children = element.getElementsByTagName("children")[0].childNodes;
for(var i=0; i<children.length; i++){
if(children[i].nodeType != 3 && children[i].tagName == "node"){
element.children.push(createObjects(children[i], depth+1));
}
}
element.expanded = false;
element.visible = false;
element.moved = false;
element.x = 0;
element.y = 0;
if (getNodeWidth() < element.label.length * 10)
element.width = element.label.length * 10;
else
element.width = getNodeWidth();
element.height = getNodeHeight();
return element; }
遇到Firefox问题时,它说'element.children.push'不是一个功能,但只适用于Google Chrome ...
有任何线索吗?
答案 0 :(得分:1)
element.children = new Array();
我不会添加数组作为元素的属性。如果要将子项添加到元素,这不是正确的方法。此外,如果您只想使用数组来管理数据,这也不是正确的方法。
如果要添加子元素,请使用:
element.appendChild(createObjects(children[i], depth + 1));