2012-06-15 154 views
0

我需要出口我的節點是這樣的:如何在jstree中獲取所有已檢查的節點?

function recursive_simplify(node){ 
    if(node.children){ 
     for(var i =0;i<node.children.length;i++){ 
      node.children[i] = recursive_simplify(node.children[i]) 
     } 
    } 
    delete node['metadata']; 
    return node 
} 

$('body').on('click','.data-export', function() { 
    var tree=$.jstree._reference('#reference-data-exchange'); 
    var checked = tree.get_checked(); 
    var result = []; 
    for(var i=0, checkedLength = checked.length; i<checkedLength;i++) 
    { 
     var checkedJson = tree.get_json(checked[i],['id','rel','data-bin','data-pos'])[0]; 
     checkedJson = recursive_simplify(checkedJson); 
     result.push(checkedJson); 
    } 
    alert(JSON.stringify(result)); 
}); 

它工作正常,但!我需要所有檢查的節點(檢查&未確定) 我的代碼返回只檢查。 Plz幫助。

+0

http://stackoverflow.com/questions/6048001/get-checked-values-for-jstree-submit-with-form-post – Radek

回答

3
get_all_checked: function(obj) 
      { 
       obj = !obj || obj === -1 ? this.get_container() : this._get_node(obj); 
       return obj.find(".jstree-checked, .jstree-undetermined"); 
      }; 

使用:

var checkedNodes = $(this).jstree("get_all_checked"); 
+0

謝謝你,蒂姆! – dudeonthehorse

+1

$(this).jstree(「get_all_checked」);只返回被點擊的節點,而不是整個樹。 – Adambean