0

我使用下面的代码行成功打开了一个 jsTree 节点分支。

$('#jsTree').jstree("open_all", currentNode);

在这一行之后,我需要选择 currentNode 的第一个孩子。为此,我写了下面的代码行。

currentNode = currentNode.children("ul").children("li:first");

但是,它不起作用!

任何建议都会有所帮助。

4

2 回答 2

0

这行代码只会打开指定节点的子节点(即currentNode)

$('#jsTree').jstree("open_all", currentNode);

您正在使用的下一条语句将 currentNode 的引用从父节点更新到第一个子节点。

currentNode = currentNode.children("ul").children("li:first");

该语句与节点的选择无关。要选择第一个子节点,您必须显式调用 select 方法

$('#jsTree').jstree("select_node", currentNode);


注意:根据您的数据源,您可能无法使用上述代码获得第一个孩子的参考。在我的测试用例中,具有 JSON 数据源,可以通过

currentNode = currentNode.children("ul").children("li")[0];

或者

currentNode = currentNode.children("ul").children("li:first")[0];
于 2013-03-07T10:20:06.303 回答
0

您必须选择新的当前节点:$('#jsTree').jstree("select_node", currentNode);

于 2013-01-04T15:29:34.103 回答