var selected = $('#tree').jstree(true).get_selected();
var selectedNode= $('#tree').jstree(true).get_selected('full',true)
selectedNode
a_attr Object { href="#"}
children []
children_d []
data undefined
icon true
id "STZ2"
li_attr Object { id="STZ2"}
id "STZ2"
original Object { id="STZ2", parent="MAG1", text="some text value"}
id "STZ2"
parent "MAG1"
text "some text value"
parent "MAG1"
parents ["MAG1", "#"]
0 "MAG1"
1 "#"
state Object { loaded=true, opened=false, selected=true, altri elementi...}
disabled false
loaded true
opened false
selected true
text "some text value"
type "default"
var selectedNode= $('#tree').jstree(true).get_selected('full',true);
selectedNode = selectedNode[0];
var id = selectedNode.id;
var text = selectedNode.text;
var parent = selectedNode.parent;
function b_delete() {
$.ajax({
url: '.....',
type: 'post',
...
success: function(){
delete_node (selectedNode);
},
error: function(){
}
});
}
function b_rename() {
rename_node (selectedNode);
};
$("#tree-container").bind("rename_node.jstree", function (e, data) {
// do stuff
$.ajax({
url: '.....',
type: 'post',
...
success: function(){
null
},
error: function(){
$("#tree-container").refresh ()
}
});
});
You are using the function wrong, this is what you need:
var selectedNode= $('#tree').jstree(true).get_selected(true)
Then you will get an array, which you can use this way:
var id = [],
parent = [],
text = [];
for(var i = 0, j = selectedNode.length; i < j; i++) {
id.push(selectedNode.id);
parent.push(selectedNode.parent);
text.push(selectedNode.text);
}
If you only want to process a single node - use:
var id = selectedNode[0].id,
parent = selectedNode[0].parent,
text = selectedNode[0].text;
Best regards,
Ivan
var selectedNode= $('#tree').jstree(true).get_selected(true)