7
votes

Jquery dynatree - Recherche noeud par nom

Je voudrais commencer à utiliser dynatre sur ma page, mais j'ai probablement besoin de rechercher mon arbre par nom. Savez-vous peut-être comment faire cela?


1 commentaires

Reportez-vous à ce DesignChemical.com/blog /index.php/jquery/... dynatree est un simple ul> li


4 Réponses :


1
votes

Il n'y a actuellement aucune fonction de recherche, mais vous pouvez utiliser quelque chose comme celui-ci (non testé)

var match = null;
tree.visit(function(node){
    if(node.data.title === "foo"){
        match = node;
        return false; // stop traversal (if we are only interested in first match)
    }
});
alert("Found " + match);


2 commentaires

Veuillez ajouter une recherche testée et de travail à votre prochaine version :)


Vous avez une erreur dans votre code. Vous devez vérifier si le match trouvé. S'il n'y a pas de correspondance dans l'arbre, vous affichez trouvé null



15
votes

Je devais avoir non seulement des nœuds correspondant, mais aussi les chemins entière de ces nœuds. J'ai écrit cette fonctionnalité et ça fonctionne pour moi.

Modifications pour la bibliothèque: xxx

Utilisation: xxx


4 commentaires

Travaillé comme un charme! Merci! BTW, je pense que l'utilisation doit être $ ("# arbre") - votre code manque le # .


J'essaie de mettre en œuvre cela, mais je ne sais pas comment faire cela. S'il vous plaît clarifier pour moi! Je ne sais pas où je mets ce code. Et quel est le modèle? le texte de la recherche ??


Exactement ce dont j'ai besoin, une pitié je peux éteindre une seule fois :)


Brillant. Maintenant, après avoir utilisé ce code pour filtrer sur un terme de recherche, je souhaite sélectionner une case à cocher de dossier et cette cause seulement ces nœuds enfants qui ne sont pas cachés pour être basculés. Quelqu'un a-t-il un moyen facile de le faire? Je posterai si je le découvre.



0
votes

Je l'ai fait de cette façon xxx

usage: xxx


0 commentaires

0
votes

Grâce à @ mars10, j'ai fait une petite fonction simple pour rechercher un nœud avec le titre:

// If searchFrom is null, root is used
function seachFolderNodeWithName(name, searchFrom) {
    if (name == null) {
        return undefined;
    }

    if (searchFrom == null) {
        searchFrom = jQuery('#tree').dynatree("getRoot");
    }

    var match = undefined;

    searchFrom.visit(function (node) {
        if (node.data.title === name) {
            match = node;
            return false; // Break if found
        }
    });
    return match;
};


0 commentaires