如何在jstree中获得点击的对象

时间:2018-09-23 17:12:30

标签: javascript jquery node.js

想获取dotnet test myapplication/Tests/MyApplication.Tests.Unit/MyApplication.Tests.Unit.csproj /p:CollectCoverage=true /p:CoverletOutputFormat=opencover

中单击的树对象值

我要实现的目标是,当用户javascript和一个clicks都与其相关的tree node我想要获取原始对象时

以下是我尝试不获取对象的内容:

data
$('#jstree').jstree({
        "json_data" : {
            "data" : [
                {
                    "data" : "A node",
                    "metadata" : { id : 23 },
                    "children" : [ "Child 1", "A Child 2" ]
                },
                {
                    "attr" : { "id" : "li.node.id1" },
                    "data" : {
                        "title" : "Long format demo",
                        "attr" : { "href" : "#" }
                    }
                }
            ]
        },
        "plugins" : [ "themes", "json_data", "ui" ]
    });
    
   $("#jstree").bind(
        "select_node.jstree", function(evt, data){
            //selected node object: data.node;
            console.log('data',data.inst.get_json());
            console.log('data.node.id',data);
      });

预期输出:

从片段上方,当我单击儿童1 儿童2 时,我应该低于<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://old.static.jstree.com/v.1.0pre/jquery.jstree.js"></script> <div id="jstree"> </div>

object

当用户点击长格式演示时,我应该会低于 { "data" : "A node", "metadata" : { id : 23 }, "children" : [ "Child 1", "A Child 2" ] }

object

请提前帮助我!!!

1 个答案:

答案 0 :(得分:2)

由于您的jstree版本较旧,因此建议您更新jstree版本。但是,对于1.0v,如果用户单击子节点之一,则可以使用以下代码获取父节点。

$('#jstree').jstree({
        "json_data" : {
            "data" : [
                {
                    "data" : "A node",
                    "metadata" : { id : 23 },
                    "children" : [ "Child 1", "A Child 2" ]
                },
                {
                    "attr" : { "id" : "li.node.id1" },
                    "data" : {
                        "title" : "Long format demo",
                        "attr" : { "href" : "#" }
                    }
                }
            ]
        },
        "plugins" : [ "themes", "json_data", "ui" ]
    });

   $("#jstree").bind(
        "select_node.jstree", function(evt, data){

          if(data.inst._get_parent().length <= 0 || data.inst._get_parent()===-1){
            console.log('data',data.inst.get_json());
            console.log('data.node.id',data);
          }else{
             var parent = data.inst._get_parent();
              console.log(data.inst.get_json(parent));
          }
            //selected node object: data.node;

      });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://old.static.jstree.com/v.1.0pre/jquery.jstree.js"></script>
<div id="jstree">
</div>