我需要获取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
请告诉我有什么不对。
谢谢
答案 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>