我已经看到了在选择节点(select_node绑定)时获取节点元数据的许多答案,但是我想要实现的目标是首先从节点获取子级,然后遍历它们以获取其元数据。这个jsfiddle试图做到这一点。此代码有什么问题?
这是HTML:
<form>
<input value="List Nodes Metadata" type="button" onclick="listNodesMetadata();" />
</form>
<div id="treediv" />
这是javascript:
$(document).ready(function () {
var tree = [ { "data" : "Node1", metadata: { x: "x1" }, "attr":{"rel":"rel1", "id" : "id1"} },
{ "data" : "Node2", metadata: { x: "x2" }, "attr":{"rel":"rel2", "id" : "id2"} },
{ "data" : "Node3", metadata: { x: "x3" }, "attr":{"rel":"rel3", "id" : "id3"} }
];
$("#treediv").jstree({
"json_data" : { "data" : tree },
"plugins" : [ "json_data", "ui", "crrm", "types" ]
});
});
function listNodesMetadata(){
var nodes = jQuery.jstree._reference("#treediv")._get_children(-1);
var len = nodes.length;
for (var i=0;i<len;i++) {
alert ( i + " " + nodes[i].data('x') );
}
}
响应在此jsfiddle中。对于每个孩子,获取ID,请使用find函数获取jsTree节点,然后使用data函数从该节点访问元数据。
var nodes = jQuery.jstree._reference("#treediv")._get_children(-1);
var len = nodes.length;
for (var i=0;i<len;i++) {
var node = $('#treediv').find("[id='" + nodes[i].id + "']");
alert ( nodes[i].id + " " + node.data('x') );
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句