从jstree获取所选节点

Cri*_*ian 7 javascript jquery jstree razor

我试图从jstree获取所选节点.

这是View中的代码

<div id="divtree" >
    <ul id="tree" >
         @foreach (var m in Model.presidentList)
         {
             <li class="jstree-clicked">
                  <a href="#" class="usr">@m.Name</a>
                  @Html.Partial("Childrens", m)
              </li>
         }
     </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我试图检索节点名称的javascript部分

$(".jstree-clicked").click(function (e) {
        var node = $(this).jstree('get_selected').text();
        alert(node);
});
Run Code Online (Sandbox Code Playgroud)

我在获取所选节点时遇到问题.如果我选择其中一个子节点(例如树的最后一个节点),我仍然可以获得整个节点列表.如果您知道我在哪里做错了,请告诉我?

Mur*_*uru 13

我不认为你应该为每个<li>节点分配"jstree-clicked"类.并使用您用于jstree绑定的jstree容器获取所选节点.

console.log($("#divtree").jstree("get_selected").text());
Run Code Online (Sandbox Code Playgroud)

  • Thnx很多,api文档在这个主题上根本不清楚.对于寻找它的其他人:$("#divtree").jstree("get_selected",true)将返回完整的对象 (5认同)
  • 这些都不适合我(:我希望有一个明确简洁的方法来获得一个选定的节点. (3认同)

Maa*_*eft 7

由于更多人发现我的评论有用,我将其转换为答案.感谢Murali的回答,我能够解决我的问题.这段代码:

$("#divtree").jstree("get_selected",true)
Run Code Online (Sandbox Code Playgroud)

将返回完整的对象.(看看真实的参数)


Eva*_*alo 6

var data = $(yourtree).jstree().get_selected(true)[0].text;

console.log(data);
Run Code Online (Sandbox Code Playgroud)

这适合我.试一试!