[js] JS dom incompatible IE6

JS dom incompatible IE6 [js] - HTML/CSS - Programmation

Marsh Posté le 31-01-2008 à 15:12:07    

Bonjour,

 

j'essaie d'inverser les lignes d'un table HTML (et pas les colonnes), en javascript.

 

J'obtiens un script qui fonctionne sous firfox 2, mais pas sous IE6.
Sous IE6, la table disparait simplement...

 

est ce que IE6 gère mal (pas?) le DOM ?

 

qu'est ce que je peux changer dans mon code pour le faire tourner sous ie6 ?

 

le code :

Code :
  1. <script>
  2. function inverttable()
  3. {
  4. var table=document.getElementById('matable'); //le noeud de ma table
  5. var trs=table.getElementsByTagName('tr'); //les tr de ma table
  6. var newtable=document.createElement('table'); // une nouvelle table
  7. for(i=trs.length-1 ; i>=0 ; i--)
  8.  newtable.appendChild(trs[i]); //j'ajoute le dernier tr de ma table vers la nouvelle table
  9. table.innerHTML=newtable.innerHTML;// je remplace le contenu de l'ancienne table avec celui de la nouvelle
  10. }
  11. </script>
  12. <table id="matable" border="1">
  13. <tbody>
  14.  <tr id="tr1">
  15.   <td id="un">un</td>
  16.   <td id="deux">deux</td>
  17.   <td id="trois">trois</td>
  18.  </tr>
  19.  <tr id="tr2">
  20.   <td id="quatre">quatre</td>
  21.   <td id="cinq">cinq</td>
  22.   <td id="six">six</td>
  23.  </tr>
  24.  <tr id="tr3">
  25.   <td id="sept">sept</td>
  26.   <td id="huit">huit</td>
  27.   <td id="neuf">neuf</td>
  28.  </tr>
  29. </tbody>
  30. </table>
  31. <input type="submit" onclick="inverttable();" value="Inverser" />
 


merci
:jap:


Message édité par nabbo le 31-01-2008 à 15:17:22
Reply

Marsh Posté le 31-01-2008 à 15:12:07   

Reply

Marsh Posté le 31-01-2008 à 15:48:29    

Rajoute

Code :
  1. table.innerHTML+='';


après

Code :
  1. table.innerHTML=newtable.innerHTML;


---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 31-01-2008 à 15:57:53    

anapajari a écrit :

Rajoute

Code :
  1. table.innerHTML+='';


après

Code :
  1. table.innerHTML=newtable.innerHTML;



 
 
ca ne change rien sur IE6 chez moi...  :??:

Reply

Marsh Posté le 31-01-2008 à 16:21:28    

en fait des fois IE6 (particulierement avec les tables) a du mal à faire son innerHTML et le +='' force le refresh de celui-ci.
Mais bon c'est pas le cas là vu que dès que tu touches a table.innerHTML il se viende :o
 
Sinon juste une petite remarque, tu devrais faire gaffe quand tu manipule trs et que tu fais un appendchild ailleurs tu modifies le tableau.
Là ça te pose pas de problème car tu fais une boucle en -- mais attention .


---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 31-01-2008 à 16:26:32    

et... tu as pas une méthode qui pourrait le faire marcher ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed