You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JsTreeGrid插件计算扩展数量时遇get_parent未定义错误

解决JsTreeGrid计算Extended Quantity时的get_parent未定义错误

嘿,这个错误很常见——你用的get_parent根本不是一个全局函数啦!JsTree并没有暴露这个全局方法,要获取父节点必须通过初始化后的jstree实例来调用对应的API。

下面是修正后的完整方案,还加了容错处理避免根节点或者数据缺失的情况:

首先,你需要先拿到jstree的实例,然后用实例的get_parent()方法去获取父节点,再安全地拿到父节点的quantity值来计算。

grid: {
  columns: [
    {header: "Title", value: function(node){return(node.text);}},
    {width: 150, header: "Quantity", value: function(node){return(node.data.quantity);}},
    {width: 150, header: "Extended Quantity", value: function(node) {
      // 替换成你的jstree容器选择器,比如#myTree
      const tree = $('#tree').jstree(true);
      // 获取父节点的ID
      const parentId = tree.get_parent(node);
      
      // 处理根节点(没有父节点)的情况,默认父节点quantity为1
      let parentQty = 1;
      if (parentId) {
        // 通过父节点ID拿到父节点对象,再取quantity
        const parentNode = tree.get_node(parentId);
        parentQty = parentNode.data?.quantity || 1;
      }
      
      // 当前节点的quantity,做个默认值避免undefined
      const currentQty = node.data?.quantity || 0;
      
      return parentQty * currentQty;
    }}
  ]
}

几个关键点要注意:

  • 一定要用容器.jstree(true)获取实例,这是JsTree获取实例的标准方式,别再用不存在的全局方法啦。
  • 加了根节点的判断,不然根节点计算的时候会因为没有父节点报错。
  • 用了?.可选链和默认值,防止节点数据里没有quantity字段导致的NaN或者报错,让代码更稳。

内容的提问来源于stack exchange,提问作者TheVic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:01:00