2012-09-07 148 views
5

這看起來應該很簡單,但jstree「data.rslt.obj.text()」方法喜歡返回當前節點的文本以及它的所有子節點。我已經想出瞭如何通過重命名節點(new_name)來獲取當前節點名稱,但是當我簡單地選擇它時,如何才能獲得當前節點的文本?另外,我希望能夠深入瞭解如何使用chrome或firebug在jstree中查找所有這些方法和屬性。例如,當我選擇「data.rslt」時,我會在哪裏查找元素列表。謝謝!如何獲取jstree中當前選定節點的文本?

$("#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) { 

回答

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列表中,你需要把一個調試點在Chrome瀏覽或螢火蟲在jstree.js文件。例如,你可以找到.bind方法在.js中,並在該特定行上放置一個調試點。 當該點擊時,您可以將鼠標懸停在參數上以獲取其中的方法。

+0

謝謝!這工作。 $('.jstree-clicked').text()比使用data.rslt.obj.text()好得多,因爲它只抓取了你點擊的節點的文本,而不是包含所有的子節點。 – TheDude

相關問題