1
var count = 0;
var subcount = 0;
var subdata = [];
var treeData = [];
for (var catId in cats) {
    for (var subCatId in cats[catId].m_itemGrpList) {
        subdata[subcount] = [{
                            id: subCatId,
                            label: GetDisplay(cats[catId].m_itemGrpList[subCatId])
        }];
        subcount = subcount + 1;
    }
    treeData[count] = [{
        id: catId,
        label: GetDisplay(cats[catId]),
        children: subdata
    }];
    count  = count + 1;
}

$tree.tree({
    data: treeData,
    onCreateLi: function(node, $li) {
        if (node.color) {
            var $title = $li.find('.jqtree-title');
            $title.addClass(node.color);
        }
    }
});

当我这样尝试时,正在创建一个数组对象并将其存储在数组中,但 jqtree 接受该对象而不是数组内的对象。我怎么能做到这一点。

这棵树有父节点,一个父节点可以有多个子节点。

4

1 回答 1

0

我得到了答案。仅适用于其他初学者。我使用了错误的数据结构。我应该这样做:

var treeData = [];
    for (var catId in cats) {
        var subdata = [];
        var subCatObj;
        for (var subCatId in cats[catId].m_itemGrpList) {
            if(cats[catId].m_itemGrpList[subCatId].m_totalCount <=0)
                continue;
            subCatObj = {
                            id: subCatId,
                            label: GetDisplay(cats[catId].m_itemGrpList[subCatId])
                        }
            subdata.push(subCatObj);
        }
        var catObj = {
                        id: catId,
                        label: GetDisplay(cats[catId]),
                        children: subdataenter code here
                    }
        treeData.push(catObj);
    }
于 2015-02-08T19:47:19.153 回答