如何在jstree中获取当前所选节点的文本?

时间:2012-09-07 15:03:17

标签: jquery select text jstree

这看起来应该很简单,但是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) {

1 个答案:

答案 0 :(得分:9)

如果您使用带有复选框的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方法并在该特定行上放置一个调试点.. 当点击中时,您可以将鼠标悬停在参数上以查看其中的方法..