【问题标题】:How do I get the text of the currently selected node in jstree?如何获取 jstree 中当前选定节点的文本?
【发布时间】:2012-09-01 11:44:31
【问题描述】:

这看起来应该很简单,但是 jstree "data.rslt.obj.text()" 方法喜欢返回当前节点及其所有子节点的文本。我已经弄清楚如何通过重命名节点(new_name)来获取当前节点名称,但是当我简单地选择它时,如何仅获取当前节点的文本?另外,如果我能深入了解如何使用 chrome 或 firebug 在 jstree 中找到所有这些方法和属性,我将不胜感激。例如,当我选择“data.rslt”时,我会在哪里查看出现的元素列表。谢谢!

 $("#RequirementsTree")
    .bind("select_node.jstree", function(event, data) {
            if(is_requirement_node(data))
            {
                var ReqCheck = data.rslt.obj.attr("name");

                @* This is a REQUIREMENT *@
                if(ReqCheck == "requirement")
                {
                    $("#RMSDoc_RequirementFlag").val("EDIT");
                    $("#RMSDoc_RBSRequirement_RequirementsId").val(data.rslt.obj.attr("id").substring(4));
                    $("#RMSDoc.RBSRequirement.RequirementsId").val(data.rslt.obj.attr("id").substring(4));
                    $("#RMSDoc_RBSRequirement_RequirementsText").val($.trim(data.rslt.obj.text()));
                    $("#RMSDoc_TreeBranch_Text").val("");
                    $("#HierarchyText").hide();
                    $("#RMSDoc_TreeBranch_Text").hide();
                    $("#ExistingTreeSubmit").val("@Model.RMSDoc.RMSEditReqButton.ConfigurableLabelDesc");

                }
                else {
                    alert("Requirement node select error");
                }
            }
            @* This is a TREE BRANCH *@
            else
            {
                debugger;
                $("#RMSDoc_RequirementFlag").val("ADD");
                $("#HierarchyText").show();
                $("#RMSDoc_TreeBranch_Text").show();
                $("#RMSDoc_TreeBranch_Text").val($.trim(data.rslt.obj.text()));
                $("#RMSDoc_TreeBranch_id").val(data.rslt.obj.attr("id").substring(4));
                $("#RMSDoc_RBSRequirement_RequirementsText").val("");
                $("#ExistingTreeSubmit").val("@Model.RMSDoc.RMSCreateReqButton.ConfigurableLabelDesc");
            }
     })
    .bind("create.jstree", function(e, data) {

【问题讨论】:

    标签: jquery select text jstree


    【解决方案1】:

    如果您使用带有复选框的 jstree,您可以检查复选框选择器的 length

    if ($('.jstree-checked').length == 1) {
        alert( 'Checked Item -: ' + $('.jstree-checked').text() );
    }
    

    如果您不喜欢复选框,请使用此选择器。

    if ($('.jstree-clicked').length == 1) {
        alert( 'Selected Item -: ' + $('.jstree-clicked').text() );
    }
    

    要获取 jstree 的所有项目和方法的列表,您需要在 jstree.js 文件中的 chrome 或 Firebug 中放置一个调试点。例如,您可以在 .js 中找到 .bind 方法并在该特定行上放置一个调试点.. 当达到这一点时,您可以将鼠标悬停在参数上以了解其中的方法..

    【讨论】:

    • 谢谢!那行得通。 $('.jstree-clicked').text() 比使用 data.rslt.obj.text() 好得多,因为它只抓取您单击的节点的文本,而不是包括所有子节点。
    猜你喜欢
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多