0
votes

Comment afficher le contenu d'un tableau en tant que liste?

J'aimerais émettre le contenu d'un tableau sous forme de liste:

valeur em> p>

valeur p> p>

valeur em> p>

Cependant, il publie actuellement le tableau comme celui-ci: p>

la valeur, la valeur, la valeur em> p> p> Que puis-je modifier pour afficher le contenu de la matrice en tant que liste verticale? p>

Pour le contexte, il affiche un tableau qui met à jour en ajoutant / supprimer des éléments basés sur des connexions / des déconnexions à un serveur. Ainsi, lorsqu'un utilisateur se connecte, leur nom est ajouté à la matrice, lors de la déconnexion, le tableau est essuyé et que tous les clients connectés envoient leur nom d'utilisateur à la matrice, à la mise à jour. Le code ci-dessous affiche simplement ces modifications. P>

HTML: P>

socket.on('theitems', function (data) {
      $('.dispUser').html('<p>' + data + '</p>');
      console.log(data);
    });


4 commentaires

Veuillez afficher la sortie de console.log (données) , et décrivez également ce que vous entendez par "montrez les changements de la matrice comme ils se produisent, plutôt que de le remplacer dans son ensemble" .


Lorsqu'un client rejoint le serveur, leur nom est envoyé à un tableau sur le serveur. Comme plus de rejoindre, leurs noms sont ajoutés à la matrice. Quand on part, le tableau est essuyé et nettoyé et toujours connecté aux clients renvoie à la matrice, "Mise à jour". La console pour quand cela se produit est vu ici . Si j'utilise .append , chaque fois que la matrice est modifiée, le changement spécifique, selon la console, est affiché.


Donc, cela ressemble à votre fonction devrait effacer le contenu de

avant que cela ajoute quelque chose. Cela le ferait-il?


Malheureusement non; Ce est ce qui est affiché sur le HTML lorsque .Append est utilisé.


3 Réponses :


0
votes

Vous pouvez utiliser une liste dans HTML:

    UL> div> P>
socket.on('theitems', function (data) {
      $('.dispUser ul').html('<li>' + data + '</li>');
      console.log(data);
    });


2 commentaires

Cela ressemblait à cela fonctionnerait, cependant, il l'affiche maintenant exactement la même chose, mais avec une balle.


Vous pouvez donc utiliser un petit CSS LI {Type de style de liste: Aucun;}



0
votes

Le problème est dans la méthode .html () .

the html () méthode définit ou renvoie le contenu (innerhtml) des éléments sélectionnés. < / p>

Lorsque cette méthode est utilisée pour renvoyer le contenu, il renvoie le contenu du premier élément correspondant.

Vous devez ajouter l'élément ne modifie pas la teneur intérieure de celle-ci.

Essayez ceci: xxx


3 commentaires

J'ai également essayé cela avant de poster la question, cependant, il provoque un mélange de la production de ce que je veux et de ce que je ne fais pas.


Peux-tu être plus précis?


Toutes mes excuses pour mon typo, j'ai corrigé ma solution. Vous pouvez aller de l'avant avec ça.



1
votes

Le problème avec votre code est que vous essayez d'imprimer directement un tableau, qui est converti à une chaîne et vous obtenez donc le résultat que vous voyez.

Vous pouvez obtenir le résultat que vous voulez par Itération em> sur la matrice et insérant un paragraphe pour chaque élément dedans. Voici un exemple: p>

p>

<ul id="list"></ul>


1 commentaires

Ce code, en particulier, n'a pas fonctionné, mais l'idée d'itération de chaque élément comme celle-ci a fonctionné pour moi. Merci! (Et merci à tous ceux qui ont aidé).