[JS / DOM] (power inside)

[JS / DOM] (power inside) - Programmation

Marsh Posté le 09-07-2002 à 11:50:09    

salut
je veux virer des nodes ou des éléments d'un node mais je sais pas comment faire ....
 
quelqu'un a t'il une soluce ??
merci ;)


Message édité par k666 le 09-07-2002 à 19:17:00
Reply

Marsh Posté le 09-07-2002 à 11:50:09   

Reply

Marsh Posté le 09-07-2002 à 13:42:16    

s'il vous plait :'(
j'ai vraiment besoin d'un ptit coup de main, ça doit être tout con mais j'y arrive pas;
 
j'ai essayé avec cloneNode(); marche po :s
 
j'aimerais pouvroi faire une copie parfaite d'un node et de ces sous nodes pour le réorganiser à ma façon, ou pour déplacer les nodes à l'intérieur de la structure...je suis sûr que l'un de vous doit savoir un ptit kek chose sur DOM qui puisse m'aider ...
merci mais j'ai plus aucun espoir:s

Reply

Marsh Posté le 09-07-2002 à 14:03:33    

bon déolé de vous avoir ennuyé! j'ai trouvé et ça marche :):)
fallait faire un new Object(); pour que le node DOM soit pas copié par référence mais par valeur ....
 
bon je ponds le code;
explications: ça fait un tri de colonne sur un tableau HTML avec plein de valeurs ... c que du client side donc c sympa, ça diminue le nombre de requêtes sql etc....
voilà donc: (je dois le cleaner c clair) ;)
 

Code :
  1. <HTML>
  2. <HEAD>
  3. <script type="text/javascript">
  4. var transTable;
  5. var tableValues;
  6. var tableContents;
  7. var sortedField;
  8. var cancelSort = false;
  9. /*************************************
  10. *  fonctions à 2 francs   *
  11. *************************************/
  12. // clean tous les tags HTML, retourne le texte contenu ...
  13. function extractValue(shitty)
  14. {
  15. if (shitty.length > 0)
  16. {
  17.  while( (shitty.indexOf("<" ) >= 0) && (shitty.indexOf(">" ) > shitty.indexOf("<" )) )
  18.  {
  19.   shitty = shitty.substr(0,shitty.indexOf("<" )) + shitty.substr(shitty.indexOf(">" )+1,shitty.length);
  20.  }
  21.  return shitty;
  22. }
  23. return;
  24. }
  25. // échange deux cases de tableau
  26. function swap(i, j)
  27. {
  28. if (i==j)
  29.  return !cancelSort;
  30. var t=tableValues[i];
  31. tableValues[i]=tableValues[j];
  32. tableValues[j]=t;
  33. var u = transTable[i];
  34. transTable[i] =  transTable[j];
  35. transTable[j] = u;
  36. return !cancelSort;
  37. }
  38. // algorithme de tri
  39. function quickSort1(start, end)
  40. {
  41. if (end-start > 1 && !cancelSort)
  42. {
  43.  var lastlow=start;
  44.  for (var i=start+1; i<end; ++i)
  45.  {
  46.   if (tableValues[i][sortedField]<tableValues[start][sortedField])
  47.    if (!swap(i, ++lastlow))
  48.     return;
  49.  }
  50.  if (!swap(start, lastlow))
  51.   return;
  52.  quickSort1(start, lastlow);
  53.  if (!cancelSort)
  54.   quickSort1(lastlow+1, end);
  55. }
  56. }
  57. /*************************************
  58. *  /fonctions à 2 francs\   *
  59. *************************************/
  60. // réorganise le tableau ...
  61. function quickSort(obj,sorted)
  62. {
  63. var nblines = obj.childNodes[0].childNodes.length;
  64. var nbcols = obj.childNodes[0].childNodes[0].childNodes.length;
  65. tableValues = new Array(nblines);
  66. tableContents = new Array(nblines);
  67. transTable = new Array(nblines);
  68. sortedField = sorted;
  69. for (n=1;n<nblines;n++)
  70. {
  71.  transTable[n] = n;
  72. }
  73. for (i=0;i<nblines;i++)
  74. {
  75.  tableValues[i] = new Array(nbcols);
  76.  tableContents[i] = new Array(nbcols);
  77.  for (j=0;j<nbcols;j++)
  78.  {
  79.   tableValues[i][j] = extractValue(obj.childNodes[0].childNodes[i].childNodes[j].innerHTML);
  80.   tableContents[i][j] = obj.childNodes[0].childNodes[i].childNodes[j].innerHTML;
  81.  }
  82. }
  83. quickSort1(1,nblines);
  84. var tempNode = new Array();
  85. for (i=1;i<nblines;i++)
  86. {
  87.  tempNode[i] = new Object();
  88.  tempNode[i] = obj.childNodes[0].childNodes[1].cloneNode(obj.childNodes[0].childNodes[1]);
  89.  obj.childNodes[0].removeChild(obj.childNodes[0].childNodes[1]);
  90. }
  91. for (i=1;i<transTable.length;i++)
  92. {
  93.  obj.childNodes[0].appendChild(tempNode[transTable[i]])
  94. }
  95. }
  96. </script>
  97. </HEAD>
  98. <BODY>
  99. <table border="1" name="ma_table" id="ma_table">
  100. <tr>
  101. <th><a href="javascript:quickSort(document.getElementById('ma_table'),0);">pouett</a></th>
  102. <th><a href="javascript:quickSort(document.getElementById('ma_table'),1);">prout</a></th>
  103. <th><a href="javascript:quickSort(document.getElementById('ma_table'),2);">coin</a></th>
  104. <th><a href="javascript:quickSort(document.getElementById('ma_table'),3);">coin</a></th>
  105. </tr>
  106. <tr>
  107. <td>1</td>
  108. <td>25_9o</td>
  109. <td>zigatrik</td>
  110. <td>crik</td>
  111. </tr>
  112. <tr>
  113. <td>3</td>
  114. <td>paparaze</td>
  115. <td>sepi</td>
  116. <td></td>
  117. </tr>
  118. <tr>
  119. <td>2</td>
  120. <td>paparaze</td>
  121. <td>sepi</td>
  122. <td></td>
  123. </tr>
  124. <tr>
  125. <td>4</td>
  126. <td>paparaze</td>
  127. <td>sepi</td>
  128. <td></td>
  129. </tr>
  130. <tr>
  131. <td>6</td>
  132. <td>asdfze</td>
  133. <td>scoinepi</td>
  134. <td></td>
  135. </tr>
  136. <tr>
  137. <td>5</td>
  138. <td>paparaze</td>
  139. <td>123sepi</td>
  140. <td></td>
  141. </tr>
  142. <tr>
  143. <td>3</td>
  144. <td>paparaze</td>
  145. <td>sepi</td>
  146. <td></td>
  147. </tr>
  148. </table>
  149. </BODY>
  150. </HTML>


 
merci à ceux qui m'ont un peu aidé et si vous avez de l'aide ou des commentaires ou suggestions je suis preneur :) @+

Reply

Marsh Posté le 09-07-2002 à 19:06:05    

hum...
juste un ptit up pour dire que mon truc c de la merde ....
en fait ça marche pas des masses sous mozilla 1.0 :'(
 
et donc: j'ai trouvé un site, et là, c HALLUCINANT ce qu'ils font,
si vous avez rien d'autre à faire, mattez moi ça:
 
http://web-fx.info/dhtml/tablesort/demo.html
 
 
ils sont très forts les keumés
 
et regardez le code javascript de la page html .... franchement ..chapeau :jap:

Reply

Sujets relatifs:

Leave a Replay

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