Maison  >  Questions et réponses  >  le corps du texte

Je souhaite créer une chaîne javascript afin que lorsqu'elle est passée dans une balise div, elle s'affiche sous forme de liste

<p>J'essaie d'utiliser JavaScript pour afficher une chaîne contenant une liste d'éléments dans un format spécifique à l'intérieur d'une balise <code>div</code> La chaîne contient plusieurs éléments que je souhaite afficher sous forme de liste à puces. Voici un exemple de chaîne : </p> <pre class="lang-js Prettyprint-override"><code>const items = "Ce sont les éléments : n1 applen2". </code></pre> <p>Je souhaite formater une chaîne pour qu'elle apparaisse comme ceci à l'intérieur d'une balise <code>div</code> <pre class="brush:php;toolbar:false;">Voici les éléments : 1. pomme 2.mangue</pré> <p>J'utilise React et Tailwind CSS et ce problème est lié aux composants React. </p>
P粉478445671P粉478445671411 Il y a quelques jours596

répondre à tous(2)je répondrai

  • P粉893457026

    P粉8934570262023-09-04 17:19:03

    Vous pouvez parcourir la méthode de mappage et la diviser chaque fois qu'elle rencontre un "/n". Vous pouvez également créer une liste ordonnée à cet effet. Par exemple, recherchez le code ci-dessous.

    import React from 'react';
        
    const items = "\n1. apple\n2. mango";
    
    const ListComponent = () => {
        const itemList = items.split('\n').map((item, index) => {
            const trimmedItem = item.replace(/^\d+\.\s/, '');
            if (item.trim()) {
              return <li key={index}>{ trimmedItem}</li>;
            }
            return null;
        });
    
        return (
            <div>
                <p>Here is the list:</p>
                <p>These are the items:</p>
                <ol>{itemList}</ol>
            </div>
        );
    };
    
    export default ListComponent;
        
    

    Voici une capture d'écran du code ci-dessus en cours d'exécution Exécutez le code ci-dessus

    répondre
    0
  • P粉376738875

    P粉3767388752023-09-04 16:57:06

    Vous devez diviser la chaîne avec des sauts de ligne, puis la mapper à plusieurs balises de paragraphe

    const items = "These are the items:\n1. apple\n2. mango";
    
    // or if you want it t be reactive:
    const [items, setItems] = useState("These are the items:\n1. apple\n2. mango");
    

    Puis en html :

        <div className="list">
          {items.split('\n').map((el) => (
             <p>{el}</p>
           ))}
        </div>
    

    Maintenant la liste s'affiche correctement, si les éléments sont centrés et que vous souhaitez qu'ils soient alignés à gauche, tapez simplement text-align: left dans la classe CSS de la liste

    répondre
    0
  • Annulerrépondre