Je sais que je suis pénible mais pourrez tu m'indiquer où je pourrais trouver ce fameux nodeCleaner
Je sais que je suis pénible mais pourrez tu m'indiquer où je pourrais trouver ce fameux nodeCleaner
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
ce qui simplifie le code comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Nouvelle page 1</title> <script type='text/javascript'> function clean(n){ for(i=0;i<n.length;i++){ var t=[n[i].previousSibling,n[i].nextSibling]; for(j=0;j!=2;j++){ if(t[j] && t[j].nodeType==3){ if(!/\S/.test(t[j].data)){ n[i].parentNode.removeChild(t[j]) } } } } } window.onload=function(){ clean(document.getElementsByTagName('*')) } function mergeCells(cellule){ var NextTD; var ThisTD; var ThisTR=cellule.parentNode; var here; var TRChilds=ThisTR.getElementsByTagName('*'); cellule.colSpan="2"; for (i=0;i<TRChilds.length;i++){if(ThisTR.childNodes[i]==cellule){here=i;}} here=here+1; while(TRChilds[here].tagName.toLowerCase()!='td'){here++;} TRChilds[here-1].innerHTML+=" "+TRChilds[here].innerHTML ThisTR.removeChild(TRChilds[here]); } </script> </head> <body> <table border="1" width="100%"> <tr> <td onclick="mergeCells(this)">1</td> <td width="20%">2</td> <td width="20%"> </td> <td width="20%"> </td> <td width="20%"> </td> </tr> <tr> <td width="20%"> </td> <td width="20%"> </td> <td width="20%"> </td> <td width="20%"> </td> <td width="20%"> </td> </tr> </table> </body> </html>
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
en fait ce que je veux c'est quand je choisi rien et que je clique sur un bloc de couleur, les cases ce remettent comme à l'origine sauf les autres
le problème, à part le fait que je n'ai rien compris à ce que tu voulais faire ..., c'est qu'il faudrait avoir sauvegardé quelquepart la structure initiale nombre de td par ligne et contenu initial ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
en plus si tu colorises deux cellules déja fusionnées, il faura additionner les colspan ...
le problème reste toujours de garder une trace de l'historique de fusion ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
je suis en train de voir comment je vais faire. Je te tiens au courant.
Si tu as des idées dit le moi.
souhaites tu autoriser plusieurs niveaux de regroupements ?
genre
refusionner un groupe de cellulesavec un autre groupe ?
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
alors là ça s'avére complexe ...
car si j'ai bien compris ce n'est pas une simple annulation que tu veux faire, mais pouvoir rendre à n'importe quel moment un retour à la situation précédente d'un td ...
en plu ssi tu as plusieurs regourpements différents sur une même ligne ...
je verrais bien un système d'array histroique ...
genre un array par tr avec une codification des regroupements ...
mais dasn la pratique je ne vois pas encore trop bien la codification qui permettrait de retourver les regourpements faits sur un div ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Vi ca va etre chaud mais bon j'ai pas le choix je dois le faire
En y repensant...
Si tu stockes au niveau de l'id du td les fusions
en concaténant
au départ tu aurais
tu fusionnes les deux premiers:id='11' id='12' id='13'
tu fusionnes les deux cellules restantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part id='(11_12)' id='13'
ensuite un peu de parsing sur les id et tu as ton historique ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part id='((11_12)-13)'
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Ce que tu me dit est une bonne idée mais je ne peu pas faire ainsi car toute mes fonction sont faite sur les id
alors attribues un attrubut perso supplémentaire ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.getElementById('montd').regroup="((id1+id2)+id3)
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
ben ce que tu aurais fait avec l'id .. fais le avec regroup ...
essaye d'attribues le regroup puis de faire un alert(this.regroup)
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Un petit exemple
tu piges le principe, en fait tu ajoutes juste un attribut au td afin d'y stocker la chaine qui sera représentative de tes regourpements ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Nouvelle page 1</title> <script type='text/javascript'> function populate(){ var TDS=document.getElementsByTagName('table')[0].getElementsByTagName('td'); for (i=0;i<TDS.length;i++){ TDS[i].regroup = "moi je suis le td numéro " + i TDS[i].onclick=function(){alert(this.regroup)} } } </script> </head> <body onload="populate()"> <table> <tr> <td> one </td> <td> two </td> </tr> </table> </body> </html>
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
C'est bon je suis arriver a faire ce que je voulé
mais il y a un prob avec ie qui me créer bien les cellules mais supprime les bordure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 function recreateCellsother(){ var cellule=Cellcourante; var nb=cellule.colSpan; cellule.colSpan=1; cellule.style.backgroundColor="#FFFFFF"; cellule.style.color="1px" var j=parseInt(idcourant)+1; var rep=1; if (cellule.nextSibling=='undefined'){ rep=0; } if(rep==0){//alors la cellule est en fin de ligne for(i=2;i<=nb;i++){ element = document.createElement("td"); element.setAttribute("colSpan",1); element.setAttribute("id",j); currenttext = document.createTextNode(""); element.appendChild(currenttext); cellule.parentNode.appendChild(element); cellule=element; j=j+1; } } else { celluleproch=cellule.nextSibling; for(i=2;i<=nb;i++){ element = document.createElement("td"); element.setAttribute("colSpan",1); element.setAttribute("id",j); element.setAttribute("border","1px"); currenttext = document.createTextNode(""); element.appendChild(currenttext) addEvent(element, 'mousedown', sel_mousedown, false); addEvent(element, 'mouseup', sel_mouseup, false); addEvent(element, 'dblclick', sel_dblclick,false); cellule.parentNode.insertBefore(element,celluleproch); j=j+1; } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part element.style.border="solid 1px black";
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Partager