J'ai créé et fermé un tr après toutes les quatre colonnes. J'ai déjà eu quelques réponses sur ce type de question mais je l'ai trouvé en jquery. Mais je dois faire cela en javascript uniquement.

J'écris un code mais ça ne me semble pas correct. Violon

var html= "";
for(var i =0;i<9;i++){
    if(i%4 == 0){
  html+='<tr>';
  }
  html+="<td>"+i+"</td>";
  if(i%4==0 && i!=0 || i == 8){
  html+="</tr>"
  }
}
document.querySelector('#test').innerHTML = html;
0
Carlos 10 mars 2016 à 08:52

3 réponses

Meilleure réponse

Le problème est avec votre logique de fermeture de balise, ce n'est pas l'ajout de la balise de fermeture au bon endroit. Pour ajouter le support de fermeture au bon endroit, vous pouvez procéder comme suit:

var html= "";
for(var i =0;i<9;i++){
  if(i%4 == 0){
    html+='<tr>';
  }
  html+="<td>"+i+"</td>";
  if(i%4==3){ //this will place the closing tag in the right spot.
     html+="</tr>"
  }
}
document.querySelector('#test').innerHTML = html;

Violon mis à jour

3
JanR 10 mars 2016 à 06:01

Vous pouvez simplifier les choses en omettant simplement les balises de fermeture pour les éléments th, td et tr, par ex.

var html = '<table>';

for(var i=0; i<9; i++){

  if(i%4 == 0) {
    html += '<tr><th>' + i;

  } else {
    html += '<td>' + i;
  }
}
html += '</table>';
document.write(html);

Ou si vous aimez un code plus concis:

    for(var i=0, html='<table>'; i<9; i++){
      html += (i%4 == 0? '<tr><th>' : '<td>') + i;
    }
    html += '</table>';

document.write(html);
0
RobG 10 mars 2016 à 06:13

Un tr après toutes les quatre colonnes.

var html= "";
for(var i =0;i<9;i++){
	if(i%4 == 0 && i != 4){
  console.log(i)
  html+='<tr>';
  }
  
  if(i==4 || i == 8){
  console.log(i)
  html+="</tr>"
  }
  if(i==4){
  console.log(i)
  html+="</tr>"
  html+="<tr>"
  }
  html+="<td>"+i+"</td>";
}
document.querySelector('#test').innerHTML = html;
<table id="test"></table>

Voici le violon,

0
Sravan 10 mars 2016 à 06:08