获取某层JsTree的所有节点Jquery

Get all nodes at a certain level JsTree Jquery

如何使用 jquery 获取特定级别的所有节点并为这些节点执行操作?我有一个用 json 数据填充的 jstree,因此不可能为每个节点级别添加我自己的 ID。

比如我要获取第3层的所有节点:

Root
    A1
      1
      2
      3

数字 1、2、3 将是 3 级节点。我只想更改 3 级节点的图标。现在我可以使用以下内容更改所有节点图标:

a>.jstree-icon
        {
            background-image: url("content/img/usersmallclipart.png")!important;
            background-position: 0!important;

        }

我想使用 jquery 获取级别 3 的所有节点,并使用 .css() 在满足特定上下文时更改图标(这就是我需要的原因使用 jquery 而不是简单地更深入地使用我的 css 风格。

所以伪代码如下:

  1. 获取第3级的所有节点

  2. 如果节点有子节点 - 更改它的图标,否则 - 什么都不做

我该怎么做? 感谢任何帮助,谢谢!

使用 css *

的通配符选择器
.root *  { color: blue } /* first level */
.root * *  { color: red } /* second level */
.root * * * { color: yellow } /* third level */
.root * * * * { color: green } /* fourth level */

加载树视图后,您可以使用 jQuery 遍历每个节点并根据节点级别应用 css。例如,一旦 jstree 加载树视图,您可以尝试以下操作:

$("#myTree").bind('ready.jstree', function (event, data) {
    var $tree = $(this);
    $($tree.jstree().get_json($tree, {
        flat: true
    })).each(function () {
        // Get the level of the node
        var level = $("#myTree").jstree().get_node(this.id).parents.length;
        var node;
        if (level == 3) {
            // node = ... apply desired css to the node here if it has children.
        }
    });
});