jstree - 节点路径具有意外的空格字符

时间:2016-04-19 10:50:25

标签: jstree

我需要获取jstree元素的节点路径,我使用这段代码:

$(function () {
    $('#jstree').jstree();
            $('#jstree')
            // listen for event
            .on('changed.jstree', function (e, data) {
                if (data.action == "select_node") {
                    var node_path = data.instance.get_path(data.node, "/");
                    console.log(node_path)
                }
            });

});

但是我得到了意想不到的空格字符(你可以在console.log()函数中看到)

http://jsfiddle.net/3q9Ma/741/

我需要一条漂亮的路径:Folder1 / children 1

请告诉我有什么不对。

谢谢

1 个答案:

答案 0 :(得分:1)

问题实际上与你的小提琴中的HTML有关。它看起来像这样:

<div id="jstree">
    <ul>
        <li>Folder 1
            <ul>
               <li id="child_1">Child 1</li>
               <li>Child 2</li>
            </ul>
        </li>
        <li>Folder 2</li>
    </ul>
</div>

get_path函数完全按照预期的方式执行 - 从父<li>获取文本,然后从子<li>获取文本。发生的事情是来自父文件夹1的文本实际上是&#39;文件夹/ n&#39;,这导致您的问题。我明白为什么你的HTML结构与你的方式相同,因为example on jstree告诉你这样做。解决它的方法是删除文件夹1之后的换行符。它看起来很糟糕,但它会使你的get_path函数工作:

<div id="jstree">
    <ul>
      <li>Folder 1<ul>
          <li id="child_1">Child 1</li>
          <li>Child 2</li>
        </ul>
      <li>Folder 2</li>
    </ul>
</div>