【问题标题】:Jstree checkbox, get only the children idJstree 复选框,仅获取子 ID
【发布时间】:2016-09-05 22:41:34
【问题描述】:

我有一棵 5 级的树,但只有孩子有自定义 ID。

<div id="jstree-naf">
    <ul>
        {% for key, naf in json["naf"] %}
        <li>{{ key }}
            <ul>
            {% for key2, naf2 in naf %}
                <li>{{ key2 }}
                    <ul>
                    {% for key3, naf3 in naf2 %}
                        <li>{{ key3 }}
                            <ul>
                            {% for key4, naf4 in naf3 %}
                                <li>{{ key4 }}
                                    <ul>
                                    {% for key5, naf5 in naf4 %}
                                        <li id="{{ key5 }}">{{ naf5 }}</li>
                                    {% endfor %}
                                    </ul>
                                </li>
                            {% endfor %}
                            </ul>
                        </li>
                    {% endfor %}
                    </ul>
                </li>
            {% endfor %}
            </ul>
        </li>
        {% endfor %}
    </ul>
</div>

但是当我选择某些东西时,我得到了孩子的id,还有父母的自动id。

 ["58.11Z", "j2_1212"]

我的 id 是“58.11Z”,但“j2_1212”是他的直接父母之一,由 jstree 自动创建,但我不需要它。

这是我的基本初始化:

$('#jstree-naf').jstree({
    "plugins" : [ "wholerow", "checkbox" ]
});

$('#jstree-naf').on("changed.jstree", function (e, data) {
    console.log(data.selected);
});

【问题讨论】:

    标签: javascript jstree


    【解决方案1】:

    您需要在此处根据您的要求配置您的复选框插件。 见这里jsTree Checkbox plugin config options

    根据您的要求,您需要将 $.jstree.defaults.checkbox.three_state 设置为 false(因为它默认为 true)和 $.jstree.defaults.checkbox.cascade 设置为 上/下/未确定

    正如 jstree 网站中提到的“$.jstree.defaults.checkbox.cascade”

    此设置控制级联和未确定节点的方式 已申请。

    如果字符串中有'up' - 启用级联,

    如果字符串中有'down' - 启用级联向下,

    如果“未确定”在字符串中 - 未确定的节点将是 用过的。

    如果 three_state 设置为 true,此设置将自动设置为 “上+下+未确定”。默认为 ''

    在您不想启用级联的情况下,您可以将级联选项设置为 'down+undetermined'

    继续启用级联并仍然只获取选定的子元素。 使用get_bottom_selected方法。

    $('#jstree-naf').jstree().get_bottom_selected()
    

    【讨论】:

    • 我想要级联(所以我想要所有的孩子(最低级别)),但我不需要父母 id
    • 为此使用get_bottom_selected 方法。这将返回除父节点之外的选定节点
    • 感谢@Chetan,但它是如何工作的? console.log(data.get_bottom_selected);返回未定义:/
    • 浏览该文档链接。它是一种方法,而不是一种属性。 data.get_bottom_selected() 将返回 ID 数组。要获取完整的节点对象,请将布尔参数作为 true 传递。
    • data.get_bottom_selected() 返回 TypeError: data.get_bottom_selected 不是函数
    【解决方案2】:

    它是否总是将所选节点作为第一项返回,然后再返回父节点?如果是这样,您可以只拿第一项:

    $('#jstree-naf').on("changed.jstree", function (e, data) {
        console.log(data.selected[0]);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 2011-06-17
      • 1970-01-01
      相关资源
      最近更新 更多