


Préface
En tant qu'élément de formulaire courant, la liste déroulante arborescente est également très courante dans le développement Web. Dans la plupart des cas, nous initialisons souvent les options de la liste déroulante de manière statique, puis modifions dynamiquement les options de la liste déroulante via JavaScript. Cependant, en cas de besoins particuliers, la liste déroulante statique ne peut plus répondre aux exigences et nous devrons peut-être générer dynamiquement une liste déroulante en forme d'arborescence. Alors, comment implémenter une liste déroulante arborescente avec JavaScript ? Voici le contenu principal de cet article.
1. Idées d'implémentation
Avant d'implémenter la liste déroulante arborescente, nous devons comprendre le concept de base de la structure arborescente. Dans une structure arborescente, un nœud peut contenir n'importe quel nombre de nœuds enfants. Par conséquent, notre liste déroulante arborescente doit prendre en charge cette structure imbriquée. De manière générale, la mise en œuvre d'une liste déroulante arborescente peut être divisée en les étapes suivantes :
- Initialisation de la source de données : Construisez un tableau pour stocker les options de la liste déroulante ; 🎜# Parcours de la source de données : parcourez la source de données, insérez des nœuds dans la position spécifiée et mettez à jour le niveau d'indentation du nœud ;
- Génération de liste déroulante : convertissez la source de données en Éléments HTML, puis insérez-les dans la liste déroulante.
- Initialisation de la source de données
var treeData = [ { id: 1, name: 'Node 1' }, { id: 2, name: 'Node 2', parentId: 1 }, { id: 3, name: 'Node 3', parentId: 1 }, { id: 4, name: 'Node 4', parentId: 2 }, { id: 5, name: 'Node 5', parentId: 2 }, { id: 6, name: 'Node 6', parentId: 3 }, { id: 7, name: 'Node 7', parentId: 3 }, { id: 8, name: 'Node 8', parentId: 4 }, { id: 9, name: 'Node 9', parentId: 4 }, { id: 10, name: 'Node 10', parentId: 5 }, { id: 11, name: 'Node 11', parentId: 5 }, { id: 12, name: 'Node 12', parentId: 6 }, { id: 13, name: 'Node 13', parentId: 6 }, { id: 14, name: 'Node 14', parentId: 7 }, { id: 15, name: 'Node 15', parentId: 7 }, ];# 🎜🎜#Parmi eux, id est utilisé pour identifier le nœud, name est le nom du nœud et parentId est l'identifiant du nœud parent du nœud. Parcours de la source de données
- Parcourez la source de données, insérez le nœud dans la position spécifiée et mettez à jour le niveau d'indentation du nœud. Ce qui suit est un processus d'implémentation simple :
function buildTree(data) { var tree = [], children = {}; for (var i = 0; i < data.length; i++) { var item = data[i], id = item.id, parentId = item.parentId || 0; if (!children[parentId]) { children[parentId] = []; } children[parentId].push(item); } function build(node, level) { node.level = level; tree.push(node); if (children[node.id]) { for (var i = 0; i < children[node.id].length; i++) { build(children[node.id][i], level + 1); } } } if (children[0]) { for (var i = 0; i < children[0].length; i++) { build(children[0][i], 0); } } return tree; } var tree = buildTree(treeData);
Ici, nous utilisons un objet pour enregistrer les nœuds enfants de chaque nœud, puis effectuons un parcours récursif pour calculer le niveau de chaque nœud. Une fois la récursion terminée, nous obtenons un tableau composé de nœuds, chaque nœud contient l'identifiant, le nom, le parentId et le niveau.
Génération de liste déroulante- Convertissez la source de données en éléments HTML puis insérez-les dans la liste déroulante. Un processus d'implémentation simple est donné ci-dessous :
function buildTreeSelect(data, select) { select.innerHTML = ''; for (var i = 0; i < data.length; i++) { var option = document.createElement('option'); option.value = data[i].id; option.innerHTML = ' '.repeat(data[i].level * 4) + data[i].name; select.appendChild(option); } } var select = document.getElementById('tree-select'); buildTreeSelect(tree, select);
Ici, nous générons un élément d'option et définissons sa valeur et ses attributs innerHTML, où innerHTML contient les informations hiérarchiques du nœud. Insérez ensuite l'élément option dans l'élément select.
3. Conclusion
Jusqu'à présent, nous avons implémenté une simple liste déroulante en utilisant JavaScript. En fait, dans le développement réel, nous devons considérer plus de détails, tels que comment gérer l'état des nœuds, comment implémenter la recherche de nœuds, comment implémenter le chargement asynchrone des nœuds, etc. Cependant, grâce à cet article, nous pouvons apprendre à utiliser JavaScript pour implémenter une liste déroulante d'arborescence de base. J'espère que ça aide.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Les avantages de React sont sa flexibilité et son efficacité, qui se reflètent dans: 1) la conception basée sur les composants améliore la réutilisabilité du code; 2) La technologie DOM virtuelle optimise les performances, en particulier lors de la gestion de grandes quantités de mises à jour de données; 3) L'écosystème riche fournit un grand nombre de bibliothèques et d'outils tiers. En comprenant comment React fonctionne et utilise des exemples, vous pouvez maîtriser ses concepts principaux et les meilleures pratiques pour créer une interface utilisateur efficace et maintenable.

React est une bibliothèque JavaScript pour la construction d'interfaces utilisateur, adaptées aux applications grandes et complexes. 1. Le noyau de React est la composante et le DOM virtuel, qui améliore les performances de rendu d'interface utilisateur. 2. Comparé à Vue, React est plus flexible mais a une courbe d'apprentissage abrupte, qui convient aux grands projets. 3. Comparé à Angular, React est plus léger, dépend de l'écologie communautaire et adapté aux projets qui nécessitent une flexibilité.

React fonctionne en HTML via Dom virtuel. 1) React utilise la syntaxe JSX pour écrire des structures de type HTML. 2) Mise à jour de l'interface utilisateur de gestion DOM virtuelle, rendu efficace via l'algorithme de difficulté. 3) Utilisez Reactdom.Render () pour rendre le composant au vrai Dom. 4) L'optimisation et les meilleures pratiques incluent l'utilisation de react.memo et de division des composants pour améliorer les performances et la maintenabilité.

React est largement utilisé dans le commerce électronique, les médias sociaux et la visualisation des données. 1) Les plates-formes de commerce électronique utilisent React pour construire des composants de panier d'achat, utiliser USESTATE pour gérer l'état, les événements d'ONCLICK pour traiter les événements et cartographier la fonction pour rendre les listes. 2) Les applications de médias sociaux interagissent avec l'API via USEEFFECT pour afficher le contenu dynamique. 3) La visualisation des données utilise la bibliothèque React-ChartJS-2 pour rendre les graphiques, et la conception des composants est facile à intégrer des applications.

Les meilleures pratiques pour React Front-end Architecture comprennent: 1. Conception et réutilisation des composants: Concevoir une seule responsabilité, des composants faciles à comprendre et à tester pour obtenir une réutilisation élevée. 2. Gestion de l'État: utilisez UseState, UserReducer, Contextapi ou Redux / Mobx pour gérer l'état pour éviter une complexité excessive. 3. Optimisation des performances: optimiser les performances via React.Memo, UseCallback, UseMemo et d'autres méthodes pour trouver le point d'équilibre. 4. Organisation du code et modularité: organiser le code en fonction des modules fonctionnels pour améliorer la gestion et la maintenabilité. 5. Test et assurance qualité: test avec plaisante

Pour intégrer React dans HTML, suivez ces étapes: 1. Introduisez React et Reactdom dans les fichiers HTML. 2. Définissez un composant réact. 3. Rendez le composant en éléments HTML en utilisant Reactdom. Grâce à ces étapes, les pages HTML statiques peuvent être transformées en expériences interactives dynamiques.

La popularité de React comprend son optimisation des performances, sa réutilisation des composants et un écosystème riche. 1. L'optimisation des performances réalise des mises à jour efficaces via DOM virtuel et les mécanismes de diffusion. 2. La réutilisation des composants réduit le code en double par les composants réutilisables. 3. L'écosystème riche et le flux de données unidirectionnel améliorent l'expérience de développement.

React est l'outil de choix pour construire des interfaces utilisateur dynamiques et interactives. 1) La composante et JSX font la division et la réutilisation de l'interface utilisateur simple. 2) La gestion de l'État est implémentée via le crochet USESTATE pour déclencher des mises à jour de l'interface utilisateur. 3) Le mécanisme de traitement des événements répond à l'interaction des utilisateurs et améliore l'expérience utilisateur.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft