2011-06-09 21 views

Respuesta

9

Consulte la documentación aquí: http://www.jstree.com/documentation/core

.delete_node (nodo)

Elimina un nodo. Desencadena un evento.

mixed node 

Esto puede ser un nodo DOM, nodo de jQuery o el selector apuntando al elemento que desea eliminar.

Parece que puede hacer un selector que eliminará todos los nodos que desee, no se requieren bucles.

+0

Eso parece funcionar. Había estado usando remove(), y no estaba funcionando. –

+0

myJsTree.delete_node (treeDiv.find ('> ul> li'); –

+0

Mi familiaridad es baja, pero parece que puede limpiar eso simplemente para ser el selector en sí y no los nodos. Algo a lo largo de la línea 'myJsTree .delete_node ('[treediv]> ul> li'); ' –

1

Llame al .remove(node) en los nodos raíz.

12

La forma más sencilla que he encontrado es simplemente llamar al .empty en el div que contiene el árbol.

$('#tree').empty(); 

Usted puede optar por utilizar un selector más específico como parámetro para empty(), pero esto funciona bien para mí.

+5

Esto es bueno si también lo sigue con $ ('# tree'). empty(). jstree ('destroy'); –

+1

@DanielJordan Sí, es mejor porque sin destruir no puedes construir un nuevo jstree ... Gracias – Dani

0

La siguiente llamada destruirá la instancia actual de jsTree, eliminará cualquier receptor de eventos enlazados y obviamente logrará su objetivo final de eliminar todos los nodos. Pero este método es un poco exagerado, hay que decirlo.

$("#DivElementContainingYourTree").jstree("init"); 
+0

por la última versión de jstree: $ (elemento) .jstree ("destroy"); – SuperCuke

9
$('#tree').jstree("destroy").empty(); 

Esto es lo que funcionó para mí. Primero destruya los elementos jstree y los eventos asociados, y luego vacíe el div que contiene jstree.

+0

Gracias ... Me funcionó también ... – Rajashekhar

+0

funcionó para mí mientras actualizaba jstree con nuevos datos. Gracias. –

0
$('#jstree').parent().html('<div id="#jstree"></div>'); 
Cuestiones relacionadas