如何从数组创建 jqtree

How to create jqtree from an array

本文关键字:创建 jqtree 数组      更新时间:2023-09-26
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 接受对象而不是数组中的对象。 我怎样才能做到这一点。

此树具有父节点,一个父节点可以有多个子节点。

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

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);
    }