0
votes

Comment créer une table HTML dans quatre colonnes à l'aide de données JSON?

J'ai une table HTML que je rendu avec json code>, en fonction de mon exigence, je dois afficher les données dans 4 colonnes Quelle taille de la taille des données est

problème p>

Lorsque ma Data.Length est également divisée par 4, il affiche deux rangées de quatre colonnes, mais lorsque la longueur de sa longueur est 6, il affiche deux lignes de 3-3 colonnes qui ne sont pas Correct, si j'ai des données ayant une longueur de 5, il ne montre que 4 articles, pas le cinquième, je ne sais pas quelle gaffe je fais p>

mon code strong> p>

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<div id="DisplayTable"></div>


5 commentaires

Je vois d'abord, n'utilisez pas rond , mais math.ceil () à la place ... autre chose ... bien meilleure création de code html ordinaire, qu'append ... Un de plus: dans le cas où les éléments % 4 n'est pas zéro que vous devez ajouter plus de cellules ... bonne chance.


@skobaljic vous dites de changer d'approche et de nouveau code?


Eh bien, je le ferais autre chose, mais vous pouvez le faire cependant que vous aimez.


@skobaljic Je ne reçois pas l'idée que j'ai faite autant de choses en plus de cela, alors je ne peux donc pas changer le code :(


Peut nous attirer une photo de ce que vous essayez d'atteindre? Il est difficile de dire sans représentation visuelle.


4 Réponses :


1
votes

Je ferais cela simple et le faisiez-le de cette façon:

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="DisplayTable"></div>


1 commentaires

Même code pour 2 ou 3 colonnes . Veuillez noter que les paramètres de fonction JavaScript par défaut sont Non compatible avec IE .



1
votes

Votre première boucle fonctionne 1 fois moins que vous le souhaitez, et je ne sais pas comment votre deuxième boucle fonctionne. Changez-le à:

    for (i = 0; i <= split; i++) { // changed this
      $tr = $("<tr/>", {
        "class": "filterData"
      });
      for (j = 0; j < 4; j++) { 
        $.each(tableValue[(i*4) + j], function(key, value) { // changed this
            console.log(j)
          $("<td/>", {
            "class": "text-left color" + (j + 1)
          }).html(value).appendTo($tr);

        });
      }


0 commentaires

0
votes

Chaque objet de la matrice dispose de 4 entrées afin de remplir 4 colonnes chaque objet remplira une ligne avec les colonnes 1 et 3 ayant les touches et 2 et 4 pour les valeurs. Les détails sont commentés dans la démo.

p>

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">

<main></main>

<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.0/jquery.min.js'></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>


0 commentaires

0
votes

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.2/jquery.min.js"></script>
<div id="DisplayTable"></div>


0 commentaires