我想从jsTree获取所有的叶节点(ID&节点文本)?
我不使用复选框ui : jsTree。
Root
-----A
-----A1
-----A1.1
-----A2
-----A2.1
-----B
-----B2
-----C
-----C1
-----C1.1我需要来自jsTree的叶节点列表。
预期产出: A1.1、A2.1、B2、C1.1
如能在此事项上提供任何帮助或指导,将不胜感激。
发布于 2012-04-24 09:04:39
像这样吗?
$('.jstree-leaf').each(function(){
var id = $(this).attr('id');
var text = $(this).children('a').text();
});发布于 2014-12-22 15:13:31
////////////////////////////////////////////////////////////////////
// @name :
// @description : function
// @params :
// @return :
////////////////////////////////////////////////////////////////////
function jstreeIterateNodes(
treeOwner ,
node ,
fnCallbackCondition ,
bRecursive ,
arrCollector
){
var
childNodes = node.children ,
arrCollector = ( arrCollector ) ? arrCollector : [] ,
bUseCallback = ( typeof fnCallbackCondition === "function" ) ? true : false ,
nodeItreator = null;
for(
var i = 0;
i < childNodes.length;
++i
){
nodeItreator = treeOwner.get_node( childNodes[i] );
if( bUseCallback ){
if( fnCallbackCondition( nodeItreator , node ) ){
arrCollector.push({
node : nodeItreator,
parent : node
});
}
}
if( bRecursive ){
jstreeIterateNodes(
treeOwner ,
nodeItreator ,
fnCallbackCondition ,
arrCollector
);
}
}
return arrCollector;
}
var
_your_jstree_ = $("#YOUR_TREE_ELEMENT").jstree( true ) ,
bRecursiveItreation = false , // could be true for recursive
arrCollected = null;
arrCollected = jstreeIterateNodes(
_your_jstree_ ,
_your_jstree_.get_node( "some_node_id" ) ,
function _your_filter_callback_( itrated_node , parent_itrated_node ){
// Do what ever and return true to collect
} ,
bRecursiveItreation
);
// DO SOMTHING WITH arrCollected which contains all collected nodes https://stackoverflow.com/questions/10293869
复制相似问题