jquery 从jstree中获取选定的Node

zujrkrfu  于 9个月前  发布在  jQuery
关注(0)|答案(6)|浏览(85)

我正在尝试从一个jstree中获取所选的Node。
这是视图中的代码

<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>

这是JavaScript部分,我尝试在其中检索节点的名称

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

我在只获取所选节点时遇到问题。如果我选择一个子节点(例如树的最后一个节点),我仍然会得到整个节点列表。请让我知道,如果你有任何想法,我做错了什么?

z4bn682m

z4bn682m1#

我不认为你应该为每个节点分配类'jstree-clicked'。并使用jstree绑定所用的jstree容器来获取所选节点。

console.log($("#divtree").jstree("get_selected").text());
9njqaruj

9njqaruj2#

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

console.log(data);

这对我很有效。给予一次机会!

kqlmhetl

kqlmhetl3#

因为更多的人发现我的评论很有用,我把它转换成了一个答案。感谢Murali的回答,我能够解决我的问题。代码:

$("#divtree").jstree("get_selected",true)

将返回完整的对象。(查看true参数)

cpjpxq1n

cpjpxq1n4#

试试这个:

var CurrentNode = $("#divtree").jstree("get_selected");
console.log($('#'+CurrentNode).text());
uplii1fm

uplii1fm5#

下面是我如何在他的'selected'父节点中创建一个新节点:

<div class="input-group mb-3">
    <div class="input-group-prepend">
        <button class="btn btn-secondary" id="add_node">
            Add directory    
        </button>
    </div>
    <input type="text" class="form-control" placeholder="Dir name" id="node_text">
</div>

我的JavaScript:

htmlSource.jstree();

    $('#add_node').on('click', function () {
        let text = $(this).closest('.input-group').find('#node_text').val();
        let selected = htmlSource.jstree('get_selected');
        htmlSource.jstree().create_node(selected, {
            "text": text
        },
        "last",
        function (e) {
            console.log(e);
        });
    })

我希望它可以是有用的或给予人一个线索

2q5ifsrm

2q5ifsrm6#

$("#divtree").jsTree().get_selected(true)

将返回“node”的数组

相关问题