recherche

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粉478445671551 Il y a quelques jours684

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.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    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

    1

    2

    3

    4

    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 :

    1

    2

    3

    4

    5

    <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