Saltar al contenido

jsTree: ¿Cómo obtener ID de nodos seleccionados para el nodo raíz en jsTree?

Te sugerimos que revises esta resolución en un ambiente controlado antes de enviarlo a producción, un saludo.

Utilizar parents en jQuery para obtener todos los padres, filtrando por li porque todos los elementos del árbol son li en jstreeprueba esto:

var parents = data.rslt.obj.parents("li");

Y para uso de los niños children en jQuery, así:

var children = data.rslt.obj.parent().find('li');

EDITAR Usando lo anterior, aquí se explica cómo obtener todos los padres e hijos y ponerlos en todos un array para cada:

Padres:

var parents = [];
data.rslt.obj.parents("li").each(function () 
    parents.push( id: $(this).attr("id"), description: $(this).children("a").text() );
);

Niños:

var children = [];
data.rslt.obj.find("li").each(function () 
    children.push( id: $(this).attr("id"), description: $(this).children("a").text() );
);

1 solución más fácil

 .get_path ( node , id_mode )

devolver la ruta a un nodo, ya sea como un array de identificaciones o como array de nombres de nodos.
mixed nodo: puede ser un nodo DOM, un nodo jQuery o un selector que apunta a un elemento dentro del árbol, cuya ruta queremos.bool id_mode: si se establece en true Se devuelven ID en lugar de los nombres de los padres. El valor predeterminado es false.

// To get path [ID or Name] from root node to selected node 

var ids = data.inst.get_path('#' + data.rslt.obj.attr('id'),true);

// Returns IDs from root to selected node

var names = data.inst.get_path('#' + data.rslt.obj.attr('id'),false); 

// Returns Name's from root to selected node 

alert("Path [ID or Name] from root node to selected node = ID's = "+ids+" :: Name's = "+names);

Si estás contento con lo expuesto, eres capaz de dejar un tutorial acerca de qué le añadirías a esta noticia.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *